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 个评论

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.

请先登录,再进行评论。

回答(1 个)

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 个评论

Instead of "E=[]" a proper pre-allocation is recommended: "E=zeros(n, m)".
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
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.
@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
Yes really it is magic

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

提问:

2012-4-29

评论:

2017-4-14

Community Treasure Hunt

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

Start Hunting!

Translated by