2014-09-12 83 views
0

我想創建一個結構,第一級,其中將有變量名的如: - 一個在Matlab中創建變量名稱與變量值相同的嵌套結構?

>> a=struct() 

a = 

struct with no fields. 

>> for i=1:30 
a.i=rand(3); 
end 
>> a 

a = 

    i: [3x3 double] 

a.i 

ans = 

    0.3477 0.2621 0.2428 
    0.1500 0.0445 0.4424 
    0.5861 0.7549 0.6878 

但我想創建一個結構,其中「A」是一個結構包含30場 哪裏a.1; a.2; a.3;每個給出一個以前分配的隨機矩陣。

我也想做同樣的事情,但'我'字符串,而不僅僅是數字。 例如,讀取視頻並將每幀中的某些特定數據存儲在具有幀編號的變量名稱的結構中。

expected result

回答

1

你的代碼只是定義了一個名爲i,30次現場。

您可以在每次迭代中使用variable field names構建不同的字段名稱。字段名稱must begin with a letter,因此您需要使用類似f1,f2等作爲名稱。要做到這一點,你建立代表字段名(在這種情況下該字符串是['f' num2str(i)])的字符串,並把括號圍繞它:

for i = 1:30 
    a.(['f' num2str(i)]) = rand(3); 
end 

這給

a = 
    f1: [3x3 double] 
    f2: [3x3 double] 
    f3: [3x3 double] 
    f4: [3x3 double] 
      ...