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

(i、i、i)要素の合計を得るためにmXnX3行列を2倍で追加しようとしていますが、上記の宣言はmatlabエラーです。私はそれを修正するように見えることはできません。助けて!Matlabが式エラーを無効にしました

答えて

2

このエラーは、Matlabの構文が正しくないために発生します。 the documentationを読んだことがありますか?ループでこれを解決するために

、あなたが書いたと思います:すべて:

C = 0; 
for i=1:size(B,1) 
    C = C + B(i,i,i); 
end 

を "MATLAB" -wayでそれを行うには、

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)_要素の合計ではありません... 3つではなく1つのループが必要です。 –

+0

@EitanT:*(i、i、i)*要素をmxnx3配列に追加することは意味がないので、OPは実際には奇妙です。とにかく、私は答えを修正しました。 – Jonas

1

i++は無効です。Matlab。中かっこも{}です。

+0

を書いて、オクターブのようなものは動作します。 Matlabユーザと共同作業する場合は使用しないでください。 –

関連する問題