2015-02-17 30 views
0

我想創建一個變量,我可以鍵入一個字符串對應於一個結構中的變量,這樣我就可以創建一組圖形變量之間的差異是變量。間接引用結構變量在Matlab中使用字符串變量

I.e.目前:

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 

由於是格式代碼公平一點,我一次只關心一個變量,我想比註釋掉取其集我想/不想更好的辦法。

有沒有辦法做到以下幾點?

I.e.理想:

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 

感謝您的任何建議。

回答

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 
+0

我完全忘了我還問了一個問題在這裏,但感謝您的回答!即使在一年半之後仍然沒有發現! – 2016-09-22 17:41:16