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

我试图在 double 中添加一个 mXnX3 矩阵以获得 (i,i,i) 元素的总和,但上面的声明给出了一个 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 回答