Record iterations of loop that has a constant numel
조회 수: 1 (최근 30일)
이전 댓글 표시
I have a loop that cycles through time advancing 126 days each time to calculate returns of stock prices. I would like to record the returns at each interval, however, since the number of element in the loop remains constant, I am getting an index out of bounds error. Any idea to how to fix that? Here is a sample of my code (the actual one is quite a bit longer):
for z = 1:126:883
[num, txt] = xlsread('GDX_ETF_Sector_MeanRev.xlsx', 'GLD');
start = strmatch('5/31/2006', txt(1:end), 'exact')+z;
finish = start+252;
[num, txt] = xlsread('GDX_ETF_Sector_MeanRev.xlsx', 'GLD', ['A' num2str(Istart) ':B' num2str(finish)'']);
returns = price2ret(num);
end
If I change it to returns(z) I get an error: In an assignment A(I) = B, the number of elements in B and I must be the same. If I fix this error then I get index out of bounds because numel in z remains constant.
Thanks a lot for your help!
댓글 수: 0
채택된 답변
Tom
2012년 6월 27일
It's not entirely clear to me, but it looks like the variable num will have a length of 252. I think the best way would be to store it in a large matrix, or a cell:
count=0;
for z = 1:126:883
count=count+1;
...
returns{count}=price2ret(num);
or
returns(count,:)=price2ret(num);
end
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!