How to make the sum of all elements?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
madhan ravi
le 29 Nov 2018
Modifié(e) : madhan ravi
le 29 Nov 2018
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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Linear Algebra dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!