根据脚本名称在脚本中使用工作区中的结构值

时间:2018-07-21 07:36:42

标签: matlab struct simulink

我正在一个项目上,我需要使用工作区中的某些变量,并且我只将其名称作为char数组。

举个例子,我有数组

var_names = {'var1', 'var2', ... } 

这些变量(以及其他变量)在工作空间中是具有多个属性(值,类等)的结构。(我相信这些是Simulink生成的,但我不确定)。

为简单起见,假设我有一个名称{'var1','var2'},我需要乘以它们的值

prod = var1.Value * var2.Value 

我尝试过

var_names(1).Value * var_names(2).Value 

和其他更明显的尝试,但没有成功。注意事项-由于变量的结构性质,评估无效,因此我需要其他一些东西。

1 个答案:

答案 0 :(得分:2)

按名称获取变量的标准方法是使用eval。重要的是要确保评估正确的文本:

names = {'var1', 'var2'};
x1 = eval(names{1});
x2 = eval(names{2});
prod = x1.Value * x2.Value