2012-04-26 70 views
0
while B(i,j,k) ~= 0 
{ C = C + B(i,j,k); 
    i++; 
    j++; 
    k++; 
    } 
end 

我想在double中添加一个mXnX3矩阵来获取(i,i,i)元素的总和,但上面的声明给出了一个matlab错误。我似乎无法纠正它。帮帮我!Matlab无效表达式错误

回答

2

这很可能是错误,因为它是不正确的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 
+0

但这不是_(i,i,i)_元素的总和......你只需要一个循环而不是三个。 – 2012-07-07 13:41:59

+0

@EitanT:OP实际上很奇怪,因为在mxnx3数组中添加*(i,i,i)*元素没有多大意义。无论如何,我已经解决了答案。 – Jonas 2012-07-16 13:58:29

1

i++是无效的Matlab。它们都不是大括号{}

+0

但是,我++和类似的将工作在八度。如果您与Matlab用户协作,请避免使用。 – 2013-02-15 01:34:47