2016-08-14 74 views
0

我想創建一個以動態變量命名的結構體。 喜歡的東西:如何用變量名創建結構體

for t = 1:2 

    for b = 1:70 
     Father.t.b.A = A; 
     Father.t.b.C = C; 
    end 
end 

,看着Father當有Father.1.1.AFather.1.2.A,...,Father.2.70.C

感謝您的任何幫助。

+4

變量名稱,包括結構字段名稱,[不能以數字開頭](http://www.mathworks.com/help/matlab/matlab_prog/variable-names.html)。使用一組結構:'父(t,b).A = A'; – excaza

+0

你應該明確地做@excaza顯示的而不是下面的答案,因爲它更清晰,更易於閱讀和理解。 – Suever

+0

@Suever是對的,使用我的答案不是一個好習慣,我只是想告訴你語法。 – Rotem

回答

2

MATLAB允許可以與其他數組類似的索引結構的數組:

for t = 1:2 
    for b = 1:70 
     Father(t, b).A = A; 
     Father(t, b).C = C; 
    end 
end 
0

您可以使用下面的示例創建struct(如excaza提到,現場開始與一些名稱中不允許使用):

A = 1; 
C = 3; 

for b = 1:7 
    Father.(['b', num2str(b)]) = struct('A', A, 'C', C); 
end 

現在:

Father.b1.A等於1個
Father.b5.C等號3