0
while  B(i,j,k) ~= 0
{ C = C + B(i,j,k);
  i++;
  j++;
  k++;
   }
end

(i,i,i) 要素の合計を取得するために double で mXnX3 行列を追加しようとしていますが、上記の宣言により matlab エラーが発生します。そして、私はそれを修正できないようです。ヘルプ!

4

2 に答える 2

2

これは、正しい Matlab 構文ではないため、おそらくエラーです。ドキュメントを読みましたか?

これをループで解決するには、次のように記述します。

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
于 2012-04-26T16:52:38.243 に答える
1

i++は有効な Matlab ではありません。どちらもブレースではありません{}

于 2012-04-26T16:52:05.167 に答える