作业帮 > 综合 > 作业

matlab for循环向量化是什么东西,帮我向量化下面循环:

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/28 13:22:25
matlab for循环向量化是什么东西,帮我向量化下面循环:
m_point=[0 0 0 0];
for i=1:100
for j=1:100
for k=1:100
d=sqrt(i.^2+j.^2+k.^2);
if(d
matlab for循环向量化是什么东西,帮我向量化下面循环:
for循环并非都能向量化,而且并非所有的向量化能使优化程序.你上面的那段代码不容易向量化,也没必要.
向量化实际上就是矩阵化,利用点运算代替for循环,利用matlab软件强大的矩阵运算能力优化程序,其含义如下:
sum1=0;
for i=1:100
for j=1:100
for k=1:100
d=i.^2+j.^2+k.^2;
sum1=sum1+d;
end
end
end
向量化:
i=1:100;j=1:100;k=1:100;
sum1=sum(i.^2+j.^2+k.^2);
再问: 我的程序不是想加起来啊 i=1:100;j=1:100;k=1:100; d=sqrt(i.^2+j.^2+k.^2); 这样做,d的只是100个数的一个矩阵 但我的那个三次嵌套d的大小应该是100的三次方个数的矩阵。。。
再答: 你上面的那段代码很难向量化,也没必要。
再问: 我的原意是想算一个三维空间长方形中的点到三维空间的原点的距(点很多),然后用条件排除一下。 那样向量化达不到我要的效果啊
再答: 我知道你的意思,这种情况需要遍历,还要存储,一般情况下也只能用for循环了。涉及条件判断的就不好向量化了。
再问: 这种情况应该仲么办啊
再答: 你那样编就行啊,挺好的,很直观也简单。大型程序优化很重要,像我们编的这些程序能实现功能就行,没必要那么较真,非要优化,因为有的也没法优化,你有这个意识就行了。在实现功能的情况下能优化就优化,不容易就算了。