MATLAB Answers

Nawal
0

How to use fprintf?

Asked by Nawal
on 31 Jul 2013
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

Sign in to comment.

3 Answers

David Sanchez
Answer by David Sanchez
on 31 Jul 2013
 Accepted Answer

fprintf('a= %g; b= %g; c= %g ',y(1),y(2),y(3)) % extend it until y(6)

  0 Comments

Sign in to comment.


Nawal
Answer by Nawal
on 31 Jul 2013

Also, how can I add units to each number For this example let's say kg,kg, kg, m, m, KN, KN
Thanks in advance

  0 Comments

Sign in to comment.


Jan
Answer by 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

Sign in to comment.