How to create matrices and change matrix names in a for loop (Sprint and Eval) ?

조회 수: 1 (최근 30일)
Hi,
I have the following loop.
periods=28
*for z=1:periods
Period(z)Return{s,j}= open - close
FReturnLMS{s,k} = Period(z)Return{s,j}
end;*
All loops are working except the z in * Period(z)Return{s,j}*. Please ignore s and j & k as they work fine. Only evaluating z is an issue. I am having trouble in deploying sprintf and eval.
Also please tell if there is a detailed source to understand the usage of Sprintf and eval.
All help will be appreciated.
Regards,
AMD.

채택된 답변

Iain
Iain 2013년 6월 7일
Period(z)Return{s,j} looks like a structure, but it seems to be missing the "." that would make it work. Period(z).Return{s,j}
eval simply evaluates the string you pass to it, as if it was entered at command line, in the current workspace.
  댓글 수: 1
Iain
Iain 2013년 6월 7일
In light of your comment:
for z=1:periods
eval(['Period' num2str(z) 'Return{s,j}= open - close;'])
eval(['FReturnLMS{s,k} = Period' num2str(z) 'Return{s,j};'])
end
I would suggest that you consider just making it a 3D cell array {s,j,z}, or a cell array containing cell arrays {z}{s,j}

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

추가 답변 (1개)

ARS
ARS 2013년 6월 7일
Hi,
No, I wish to retain it as a cell array and thats why it ends with {}. I want the cell array name to be from Period1Return to Period28Return using loop and values assigned using
  • Period(z)Return{s,j}= open - close*
Thanks.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by