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

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

답변 (2개)

Adam
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

카테고리

도움말 센터File Exchange에서 Variables에 대해 자세히 알아보기

제품

질문:

2016년 3월 21일

댓글:

2019년 4월 30일

Community Treasure Hunt

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

Start Hunting!

Translated by