Loading variable from whos

3 views (last 30 days)
ZK
ZK on 18 Jun 2013
Hi I am working on a group of variables, and I want work on every of them changing them value in loop.
I grouped interested me variables by whos('I2*')
Thank You.

Accepted Answer

Jan
Jan on 18 Jun 2013
Avoid such meta-programming. Guessing the names of the variables and construct some obscure EVAL command to access them increases the complexity of your program without any benefit.
If the variables belong together, define them as fields of a struct. Then dynamic field names allow a fast and save processing:
a.x = 1:10;
a.y = rand(10);
fields = fieldnames(a);
for k = 1:length(fields)
disp(a.(fields{k}));
end
  1 Comment
ZK
ZK on 19 Jun 2013
Thanks for advise, I used in structure but in different way.

Sign in to comment.

More Answers (1)

David Sanchez
David Sanchez on 18 Jun 2013
Try this out:
my_vars=whos;
for k = 1:length(my_vars)
assignin('base',my_vars(k).name,value_to_assign)
end
where value_to_assign is jsut that, the value you want the variable to have.
  1 Comment
ZK
ZK on 18 Jun 2013
This variables are a matrixes, so I would like to call them directly by name in whos.

Sign in to comment.

Categories

Find more on Structures 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!