Using the text in a char matrix as the name of a matrix
21 次查看(过去 30 天)
显示 更早的评论
Imagine I have a char matrix as follows:
val =
AAAAA
BBBBB
CCCCC
How can I use these texts as the names of some matrices?
For example I want my first matrix to be:
AAAAA = [3 4 5];
1 个评论
Stephen23
2018-3-9
Avoid doing this. Dynamically accessing variable names is how beginners force themselves into writing slow, complex, buggy code that is hard to debug. For more information see:
Note that indexing is neat, simple, very easy to debug, and very efficient. You should consider using indexing.
回答(3 个)
Vishwanath Bailore Acharya
2018-3-9
You can use 'genvarname' for your purpose.
For example, if you have a character array 'val' as,
val = 'ABC';
then you can use 'genvarname' to construct a variable name from the strings as,
a = genvarname(val(1));
then you can use variable 'a' as a variable to any data by using 'eval' function as,
eval([a ' = [1,2,3]']);
Hope this helps.
1 个评论
Walter Roberson
2018-3-9
Using eval() is not recommended. Using dynamic variable names is not recommended.
Ehsan Khorsandnejad
2018-3-9
编辑:Ehsan Khorsandnejad
2018-3-9
1 个评论
Walter Roberson
2018-3-9
Creating a variable name from data at run time is making a dynamic variable name. You compute the variable name, such as
varname = str(1:6);
and then you want to use the content of varname as the name of the variable to write to. "Dynamic" in "dynamic variable name" is the opposite of "static" as in "static variable name", with static variable names being the ones that are hard-coded and unchangeable, and dynamic variable names changing depending on the circumstances.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!