2015-01-16 73 views
0

我需要創建一個'大'結構,其中將包含matlab中的子結構。 在我試圖處理的問題中,我有560個變量,其中每個變量分別具有域D = [0 1 2 3 4 5 6 7]。如何在MATLAB中創建具有多個子結構的結構?

只是一個問題的變量,可以說X0,我已經做到了這一點和工作得很好:

field='x0'; 
dom=domain_var; 
d0=struct(field,dom); 
d0 

,輸出是:

x0: [0 1 2 3 4 5 6 7] 

這實際上是罰款。

field實際上是每個單個變量f.e的名稱。 x0,x1,x2,...,x560當我聲明dom=domain_var;時,domain_var只是一個int數組,其中包含每個變量的可能值,即[0 1 2 3 4 5 6 7](對於問題的每個變量都是相同的)。

事情是,我怎麼能做到這一點不只是一個,或只是兩個結構,然後連接它們,但是560個變量?這可能嗎?如果是的話,這怎麼可能呢?任何幫助,將不勝感激。

+0

你如何確定每個'field'和'dom'? –

+0

@LuisMendo是的,沒錯。我忘了提及該字段實際上是每個單個變量的名稱,f.e. x0,x1,x2,... x560,當我聲明dom = domain_var; ,domain_var只是一個int數組,它包含了每個變量的可能值,意思是[0 1 2 3 4 5 6 7](對於問題的每個變量都是一樣的)。 – amno

+1

這種方式很難處理不同的變量。你最好定義一個二維數組或單元陣列'x' –

回答

1
for ii=1:560,fnm=['x' num2str(ii)];d0.(fnm)=dom;end 

我應該這樣做嗎?

+1

您可以擴展該答案並解釋代碼的作用嗎? – Kevin

+0

感謝您的回覆,但不是,它不會工作。 – amno