在MATLAB中从其名称返回变量

时间:2014-02-16 18:32:26

标签: string matlab variables

假设我有一个变量var=1和一个字符串str='var'。 如何从var获取str的值?我尝试使用str2num(str),但它没有用。

另外,如果我有2个字符串str1='some letters'str2='str1',我可以从str2获得“某些字母”阶段吗?

我想这样做是因为我有很多矩阵(非常大)我希望在一些组中将它们分开,所以我想要创建具有属于一个组的每个矩阵的名称的单元格(矩阵可以属于多个组,所以用矩阵制作单元格并不是很好。)

2 个答案:

答案 0 :(得分:5)

您可以使用eval

x = eval( str ) ;

但不建议这样做。

答案 1 :(得分:1)

虽然使用eval作为@Shai mentioned可以轻松实现,但您可能并不真的想要这样做。使用eval会妨碍您的调试,并且根据变量的名称严重限制了代码的灵活性。如果你想要命名,你可能最好使用带有数据字段和名称字段的结构。

从您的描述来看,我想知道以下内容:

1。为什么你有很多矩阵?

对于您拥有的每个变量,您都依赖于名称。取决于许多名称通常是不合需要的。因此我的建议是:

  

使用包含这些矩阵的(单元格)数组

2。你究竟希望他们在一个小组中的方式

我不清楚您希望分组如何工作,但请想一想:

  

如果要使用名称,请使用nameField创建结构或数组结构,但是   否则只需使用一个单元格数组,并让每个矩阵得到一个数字。

您现在可以更轻松地处理矩阵,例如“选择10个随机矩阵”或“选择nameField包含'abc''的所有矩阵都可以轻松有效地完成。

现在,您还可以在数据字段中指定数据,或者将组定义为简单的数字列表。