Summing output of for loop.

I have a for loop producing an n x m matrix E fr every time the for loop runs. But i then need to sum all the output matrices from the for loop. Can anyone suggest how to do this. -I dont need to save the individual matrices, just the sum of them. Thanks

1 commentaire

Jan
Jan le 30 Avr 2012
What have you tried and which problem has occurred? Actually the procedure is trivial: Create the new matrix in each iteration and sum it up.

Connectez-vous pour commenter.

Réponses (1)

Geoff
Geoff le 30 Avr 2012

2 votes

I gather you have the following situation, or something similar.
nloops = 100;
sumE = zeros(n,m);
for i = 1:nloops
% This loop generates a new E
E = [];
for j = 1:n*m
% magic goes here
end
% Now you want to sum E
sumE = sumE + E;
end
Well, the answer is contained above. =)

5 commentaires

Jan
Jan le 30 Avr 2012
Instead of "E=[]" a proper pre-allocation is recommended: "E=zeros(n, m)".
Dougie
Dougie le 30 Avr 2012
This all makes sense apart from the:
for j = 1:n*m
% magic goes here
end
is this just meant to be the calculation for E?
Thanks
Geoff
Geoff le 1 Mai 2012
Yes, you stated that you already had a loop to compute E, so I slapped in a magical loop to compute E as a placeholder. And yes, as per Jan Simon's reminder, I would usually preallocate the array instead of declare it empty.
Jan
Jan le 2 Mai 2012
@Dougie: If you had posted the relevant part of your program, Geoff wouldn't has to guess the part for calculating E.
Beside the tiny detail of the pre-allocation, Geoff's solution seems to be optimal. +1
Tilkesh
Tilkesh le 14 Avr 2017
Yes really it is magic

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Tags

Question posée :

le 29 Avr 2012

Commenté :

le 14 Avr 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by