假设我有一个变量var=1
和一个字符串str='var'
。
如何从var
获取str
的值?我尝试使用str2num(str)
,但它没有用。
另外,如果我有2个字符串str1='some letters'
和str2='str1'
,我可以从str2
获得“某些字母”阶段吗?
我想这样做是因为我有很多矩阵(非常大)我希望在一些组中将它们分开,所以我想要创建具有属于一个组的每个矩阵的名称的单元格(矩阵可以属于多个组,所以用矩阵制作单元格并不是很好。)
答案 0 :(得分:5)
您可以使用eval
:
x = eval( str ) ;
但不建议这样做。
答案 1 :(得分:1)
虽然使用eval
作为@Shai mentioned可以轻松实现,但您可能并不真的想要这样做。使用eval
会妨碍您的调试,并且根据变量的名称严重限制了代码的灵活性。如果你想要命名,你可能最好使用带有数据字段和名称字段的结构。
从您的描述来看,我想知道以下内容:
对于您拥有的每个变量,您都依赖于名称。取决于许多名称通常是不合需要的。因此我的建议是:
使用包含这些矩阵的(单元格)数组
我不清楚您希望分组如何工作,但请想一想:
如果要使用名称,请使用
nameField
创建结构或数组结构,但是 否则只需使用一个单元格数组,并让每个矩阵得到一个数字。
您现在可以更轻松地处理矩阵,例如“选择10个随机矩阵”或“选择nameField
包含'abc''的所有矩阵都可以轻松有效地完成。
现在,您还可以在数据字段中指定数据,或者将组定义为简单的数字列表。