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

104 ビュー (過去 30 日間)
Brando Miranda
Brando Miranda 2016 年 3 月 21 日
コメント済み: Stephen23 2019 年 4 月 30 日
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 件のコメント


回答 (2 件)

Adam 2016 年 3 月 21 日
編集済み: Adam 2016 年 3 月 21 日
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 2016 年 3 月 21 日
編集済み: Renato Agurto 2016 年 3 月 22 日
x = eval(v_str);
It is normal to advice against it, but normally when the left side of the equation is a string


Help Center および File ExchangeWhos についてさらに検索


Community Treasure Hunt

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

Start Hunting!

Translated by