我是MATLAB的新手。我想解决以下表示为'A'的双重求和。
A= sigma(j=1..n)sigma(k=1..m)x1_ik((x2_ijk - x3_ij(k-1))^2)
我不明白循环是解决方案或其他方法的好方法。似乎Matlab没有任何用于双重求和的内置函数。 我用于双重求和的内容:
sum2=0;
for i=1:10
for j=1:10
sum2=sum2+(i*j);
end
end
感谢您的帮助。
答案 0 :(得分:1)
在Matlab中,矢量化代码通常更快。您的循环可以像这样进行矢量化:
vec1 = 1:10;
vec2 = 1:10;
mat1 = repmat(vec1',1,length(vec2));
mat2 = repmat(vec2,length(vec1),1);
sum(sum(mat1.*mat2))