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的三次方个数的矩阵。。。
追答
你上面的那段代码很难向量化,也没必要。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询