Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

How to summon a double variable that it's name was stored in a string?

Asked by pouya jamali

pouya jamali (view profile)

on 19 Oct 2011

during my program I want to summon a double variable that it's name saved in a string before!How can do it?

0 Comments

pouya jamali

pouya jamali (view profile)

Products

No products are associated with this question.

2 Answers

Answer by David Young

David Young (view profile)

on 19 Oct 2011
Accepted answer

Use eval. For example

xxx = 3;     % variable with value
varname = 'xxx';    % name of variable stored as a string
% ... other stuff ...
val_of_xxx = eval(varname);   % gets back value of xxx

But think carefully about whether you really need to do this. It's often the case that there's a better way to write your program, perhaps using structure arrays or cell arrays, that avoids having to store variable names as strings. If there is, it's usually much better to avoid using eval.

2 Comments

Jan Simon

Jan Simon (view profile)

on 19 Oct 2011

The EVAL approach is prone to errors and inefficient. David's suggestion touse a struct is *much* better:
Name = 'xxx'; S.(Name) = rand;

pouya jamali

pouya jamali (view profile)

on 19 Oct 2011

Thanks a lot

David Young

David Young (view profile)

Answer by Daniel

Daniel (view profile)

on 19 Oct 2011

Building on David's answer

xxx = 3;
varname = 'xxx';
val_of_xxx = eval(varname);

can be replaced with

data.xxx = 3;
varname = 'xxx';
val_of_xxx = data.(varname);

The advantage of the latter is it avoids the eval.

1 Comment

pouya jamali

pouya jamali (view profile)

on 19 Oct 2011

Thanks a lot Dani:-)

Daniel

Daniel (view profile)

Contact us