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