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.
0 件のコメント
採用された回答
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
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 件)
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!