Is it possible to transform a string to a variable code name in MATLAB?

105 Ansichten (letzte 30 Tage)
Brando Miranda
Brando Miranda am 21 Mär. 2016
Kommentiert: Stephen23 am 30 Apr. 2019
This might be a very bizarre question (and probably I might be advised against doing such a weird thing) but if I have a string as in `v_str ='var_name'` and I want to transform the contents of that code into the actual code, is that possible in MATLAB? As in:
v_str = 'var_name'
x = make_string_to_code(v_str)
translates to the functioning code:
x = var_name
which simply transforms the string to actual code.
The only way I thought of doing this is by writing a file with that code and then on the next line executing that fine, but I wanted to avoid writing files every time that I want to do this
  3 Kommentare

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Adam
Adam am 21 Mär. 2016
Bearbeitet: Adam am 21 Mär. 2016
You are correct that this is something you will be strongly advised against even trying to do. Someone will probably post a relevant set of links to places that tell you why not, but as to an alternative solution, use a struct and a dynamic string to access its fields if you want to do something like this. e.g.
myStruct.var_name = 6;
v_str = 'var_name';
x = myStruct.( v_str );
would be equivalent to just
x = 6;
This can be especially useful if you are loading data from a mat file since the 'load' function allows you to load all the variables into the workspace as fields of a struct rather than just depositing them all into the workspace.

Renato Agurto
Renato Agurto am 21 Mär. 2016
Bearbeitet: Renato Agurto am 22 Mär. 2016
x = eval(v_str);
It is normal to advice against it, but normally when the left side of the equation is a string

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by