how to save output of for loop

3 ビュー (過去 30 日間)
Safi ullah
Safi ullah 2017 年 2 月 28 日
回答済み: MARCO FORTI 2019 年 10 月 25 日
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.

採用された回答

Alexandra Harkai
Alexandra Harkai 2017 年 2 月 28 日
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 件のコメント
Safi ullah
Safi ullah 2017 年 2 月 28 日
@ Alexandra Harkai thanks,now the code work well.
Jan
Jan 2017 年 2 月 28 日
+1, correct.

サインインしてコメントする。

その他の回答 (2 件)

Jan
Jan 2017 年 2 月 28 日
This works without a loop also:
S = squeeze(mean(reshape(Ri, size(A, 1), 5, 20), 2));
  1 件のコメント
Alexandra Harkai
Alexandra Harkai 2017 年 2 月 28 日
+1 for teaching me squeeze

サインインしてコメントする。


MARCO FORTI
MARCO FORTI 2019 年 10 月 25 日
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?

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by