I am writing a for loop with two data set A and B as the following:
for k = 1:5
for i = 12*k
b = nan(5,10)
for j = 1:10
a = regress(A(i-11:i,j),B(i-11:i,1))
b(k,j) = a(2:end)
end
end
end
I want to store all the result in one data set. However, only data with k = 5, i =5 is store into b. Any idea why this might happen?

 채택된 답변

Rik
Rik 2021년 3월 26일

1 개 추천

You are resetting b in your loop, so only the last value of k matters.
And the middle loop isn't a loop, as it is a scalar.

댓글 수: 3

Jack Tse
Jack Tse 2021년 3월 26일
Thank you.
How can I avoid resetting b in my loop?
Rik
Rik 2021년 3월 27일
By putting the code that assigns a value to b (without taking into account any existing value of b) outside the loop.
b = nan(5,10);
for k = 1:5
i = 12*k;
for j = 1:10
a = regress(A(i-11:i,j),B(i-11:i,1));
b(k,j) = a(2:end);
end
end
disp(b)
Jack Tse
Jack Tse 2021년 3월 27일
Thank you so much. It work prefectly fine.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

질문:

2021년 3월 26일

댓글:

2021년 3월 27일

Community Treasure Hunt

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

Start Hunting!

Translated by