
matlab for循环向量化是什么东西,帮我向量化下面循环:
m_point=[0000];fori=1:100forj=1:100fork=1:100d=sqrt(i.^2+j.^2+k.^2);if(d<200)add=[ijk...
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<200)
add=[i j k d];
m_point=[m_point;add];
end
end
end
end 展开
for i=1:100
for j=1:100
for k=1:100
d=sqrt(i.^2+j.^2+k.^2);
if(d<200)
add=[i j k d];
m_point=[m_point;add];
end
end
end
end 展开
1个回答
展开全部
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);
向量化实际上就是矩阵化,利用点运算代替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的三次方个数的矩阵。。。
追答
你上面的那段代码很难向量化,也没必要。

2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步...
点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询