MATLAB Answers

Auryn_
0

How to make the sum of all elements?

Auryn_
さんによって質問されました 2018 年 11 月 29 日
最新アクティビティ madhan ravi
さんによって 編集されました 2018 年 11 月 29 日
Hi,
M=10;
I have a matrix M=mxn and I want the sum of all elements, for n and m from 1 to 10.
My question is why this:
for ii=1:M
for ij=1:M
A=sum(M(ii,ij));
end
end
does not give the same result as:
A= sum(M,'all');
Thanks in advance for your reply.

  0 件のコメント

サインイン to comment.

1 件の回答

madhan ravi
回答者: madhan ravi
2018 年 11 月 29 日
編集済み: madhan ravi
2018 年 11 月 29 日
 採用された回答

The result is not the same because you are summing up a scalar in each iteration thats why example sum(5) ->5 so the one which you do after is the correct way to do that is sum(M,'all') which can also be written as sum(M(:)). Also ii should be from 1 to size(M,1) representing number of rows and ij from 1 to size(M,2) representing number of columns.
Example:
Code:
M=rand(3); %your matrix
A=zeros(1,numel(M)); %preallocation
ctr=1;
for ii=1:size(M,1)
for ij=1:size(M,2)
A(ctr+1)=A(ctr)+(M(ii,ij));
ctr=ctr+1;
end
end
total_sum=max(A)
sum(M,'all') %if they are equal then the result obtained is correct
command window:
>> COMMUNITY
total_sum =
4.8821
ans =
4.8821
>>

  0 件のコメント

サインイン to comment.



Translated by