How to make the sum of all elements?

Auryn_

Auryn_ (view profile)

さんによって質問されました 2018 年 11 月 29 日

madhan ravi (view profile)

さんによって 編集されました 2018 年 11 月 29 日

madhan ravi (view profile)

さんの 回答が採用されました
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');

0 件のコメント

サインイン to comment.

1 件の回答

2018 年 11 月 29 日

madhan ravi (view profile)

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:
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.