在Matlab中使用字符串变量间接引用结构变量

时间:2015-02-17 20:24:45

标签: matlab variables call

我正在尝试创建一个变量,我可以在其中键入与结构中的变量对应的字符串,这样当曲线之间的唯一差异就是变量时,我可以创建一组绘图。

即。目前:

example(1:100).variable1=[matrix]
example(1:100).variable2=[matrix]
example(1:100).variable3=[matrix]
for i=1:100
   figure (i)    
   surf(x,y,example(i).variable1)    
   [Formatting code]

   surf(x,y,example(i).variable2)
   [Formatting code]

   surf(x,y,example(i).variable3)    
   [Formatting code]
end

由于有一些格式化代码,我一次只关心一个变量,我想要一个更好的方法,而不是评论我想要/不想要的任何一个。

有没有办法做到以下几点?

即。理想的:

example(1:100).variable1=[matrix]
example(1:100).variable2=[matrix]
example(1:100).variable3=[matrix]

stringVariable='variable1'

for i=1:100
   surf(x,y,example(i).stringVariable)    
   [Formatting code]
end

感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

在matlab中执行此操作的方法是在使用引用结构字段时将变量封装在括号中。

例如:

>> thisstruct.A = [1 1 1];
>> thisstruct.B = [0 0 0];
>> variable = 'A';
>> thisstruct.(variable)
ans =
 1     1     1
>> variable = 'B';
>> thisstruct.(variable)
ans =
     0     0     0