How to use fprintf?
3 ビュー (過去 30 日間)
古いコメントを表示
For example if I have seven variable x=[a;b;c;d;e;f;g]
and I have y=[1;2;3;4;5;6;7]
how can I use fprintf to assign each number from y to its variable in x
I'm so confused, please help!
0 件のコメント
採用された回答
David Sanchez
2013 年 7 月 31 日
fprintf('a= %g; b= %g; c= %g ',y(1),y(2),y(3)) % extend it until y(6)
0 件のコメント
その他の回答 (2 件)
Jan
2013 年 7 月 31 日
The reply is easy: You can't.
On one hand fprintf cannot assign variables. One the other hand, the input x=[a;b;c;d;e;f;g] is unclear: What kind of type should this be? A cell string? And on the third hand, such meta-programming is possible using the weird eval, but this causes so many troubles, that any experienced programmer will recommend to avoid it strictly.
Instead of performing "a = 1" magically, it is much smarter and more efficient to store data in a vector (your y looks fine already!) or in a struct:
fieldList = {'a', 'b', 'c'};
dataList = [1, 2, 3];
for k = 1:length(fieldList)
S.(fieldList{i}) = dataList(i);
end
You can search in the forum for "eval" and "assignin" to find more discussions about this frequently asked topic.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で System Commands についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!