MATLAB Answers

how to save output of for loop

310 views (last 30 days)
Hi, I have a matrix A=54×100. For some specific condition I perform an operation on each row of “A” with the help of for loop. now I need to save the output of this for loop. I tried like
S=zeros(54,100);
for i=1:54;
Ri=A(i,:);
answer=mean(reshape(Ri,5,20),1);
S(i)=answer;
end
but not succeed.

  0 Comments

Sign in to comment.

Accepted Answer

Alexandra Harkai
Alexandra Harkai on 28 Feb 2017
The size of output S in this case will be 54*20. To specify that you want to assign answer to the whole row of S, use the same (i,:) indexing you used for A:
S=zeros(54,20);
for i=1:54;
Ri=A(i,:);
answer=mean(reshape(Ri,5,20),1);
S(i,:)=answer;
end

  2 Comments

Safi ullah
Safi ullah on 28 Feb 2017
@ Alexandra Harkai thanks,now the code work well.
Jan
Jan on 28 Feb 2017
+1, correct.

Sign in to comment.

More Answers (2)

Jan
Jan on 28 Feb 2017
This works without a loop also:
S = squeeze(mean(reshape(Ri, size(A, 1), 5, 20), 2));

  1 Comment

Alexandra Harkai
Alexandra Harkai on 28 Feb 2017
+1 for teaching me squeeze

Sign in to comment.


MARCO FORTI
MARCO FORTI on 25 Oct 2019
Hello all,
I am doing forecasting and the algorithm works fine, nevertheless I can not save the output as I would.
In particular, the final loop is:
%final forecast
ff=zeros(horiz,1);
for i=1:horiz
xf=xb(1:end-i+1,:);
yf=yb(i:end);
betah=(xf'*xf)\(xf'*yf);
ff(i)=y(end-pbest+1:end)'*betah;
th=[th;ff(i)]; %
end
In this I only get the general output as "ans", while I would get the two vector "ff" and "th" both in sequence (as "ans" reports) and separately.
Can anyone help me?

  0 Comments

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by