2012-04-26 85 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