在MATLAB中对矩阵元素求和的方法有哪些?

izz*_*zat 12 matlab sum matrix

鉴于矩阵:

A = [1 2 3; 4 5 6; 7 8 9];
Run Code Online (Sandbox Code Playgroud)
  1. 你怎么能用for循环来计算矩阵中元素的总和?
  2. 使用函数写一行MATLAB命令来sum对矩阵元素求和A.

我的答案:

1)

for j=1:3,
    for i=j:3,
        A(i,:) = A(i,:)+A(j+1,:)+A(j+2,:)
    end
end
Run Code Online (Sandbox Code Playgroud)

2)

sum(A)
Run Code Online (Sandbox Code Playgroud)

这些是正确答案吗?我不知道怎么用if,while而且for.有谁可以向我解释一下?

Moh*_*nia 31

对于使用非常大的矩阵,sum(sum(A))可以比sum(A(:))以下更快:

>> A = rand(20000);
>> tic; B=sum(A(:)); toc; tic; C=sum(sum(A)); toc
Elapsed time is 0.407980 seconds.
Elapsed time is 0.322624 seconds.
Run Code Online (Sandbox Code Playgroud)


mer*_*erv 18

1)

total = 0;
for i=1:size(A,1)
  for j=1:size(A,2)
    total = total + A(i,j);
  end
end
Run Code Online (Sandbox Code Playgroud)

2)

total = sum(A(:));
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用1)而不是2)当您实际使用MATLAB实现真实的东西时,那么您需要死一个可怕的死亡;) (10认同)

gno*_*ice 10

第一个问题的另一个答案是使用一个 for循环并使用函数NUMEL对数组执行线性索引以获得元素的总数:

total = 0;
for i = 1:numel(A)
  total = total+A(i);
end
Run Code Online (Sandbox Code Playgroud)