How to use fprintf?
3 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
David Sanchez
on 31 Jul 2013
fprintf('a= %g; b= %g; c= %g ',y(1),y(2),y(3)) % extend it until y(6)
0 Comments
More Answers (2)
Jan
on 31 Jul 2013
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 Comments
See Also
Categories
Find more on System Commands in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!