Matlab无效表达式错误
问题描述:
while B(i,j,k) ~= 0
{ C = C + B(i,j,k);
i++;
j++;
k++;
}
end
我想在double中添加一个mXnX3矩阵来获取(i,i,i)元素的总和,但上面的声明给出了一个matlab错误。我似乎无法纠正它。帮帮我!Matlab无效表达式错误
答
这很可能是错误,因为它是不正确的Matlab语法。你读过the documentation吗?
要使用循环解决这个问题,你会写:
C = 0;
for i=1:size(B,1)
C = C + B(i,i,i);
end
要做到这一点,在 “Matlab的” 往来港澳,你会写
nn = size(B,1);
C = sum(B(1:(nn^2+n+1):end));
注:所有的上面假定B是nxnxn。
如果你想获得的所有元素的总和,你可以简单地写
C = sum(B(:));
如果你真的想做一个三重循环,你写
C = 0;
[nI,nJ,nK]=size(B);
for i=1:nI
for j=1:nJ
for k=1:nK
C = C + B(i,j,k);
end
end
end
答
i++
是无效的Matlab。它们都不是大括号{}
。
+0
但是,我++和类似的将工作在八度。如果您与Matlab用户协作,请避免使用。 – 2013-02-15 01:34:47
但这不是_(i,i,i)_元素的总和......你只需要一个循环而不是三个。 – 2012-07-07 13:41:59
@EitanT:OP实际上很奇怪,因为在mxnx3数组中添加*(i,i,i)*元素没有多大意义。无论如何,我已经解决了答案。 – Jonas 2012-07-16 13:58:29