2016-11-12 80 views
-1

如何的結構,即「設置」可以比與該代碼更容易地填充:填充結構更有效

settings(1).exposure = 1;  
settings(1).rebalancing = 0; 
settings(2).exposure = 0;  
settings(2).rebalancing = 0; 
settings(3).exposure = 1; 
settings(3).rebalancing = 1; 
settings(4).exposure = 0; 
settings(4).rebalancing = 1; 
settings(5).exposure = 'benchmark'; 
settings(5).rebalancing = 0; 
settings(6).exposure = 'benchmark'; 
settings(6).rebalancing = 1; 
+2

你想要填充到結構中的數據是如何組織的?你是否從某個文件中讀取它? – hbaderts

回答

2

您可以使用struct功能壓縮它:

>> s = struct('exposure',{1,0,1,0,'benchmark','benchmark'},'rebalancing',{0,0,1,1,0,1}); 
>> s(6) 
ans = 
     exposure: 'benchmark' 
    rebalancing: 1 

數組常量可以通過包含任何變量代替你的數據,只要所有的數組都符合規格。

0

可以創建具有[1 2 3 4 5 6]

陣列/矩陣

然後在for循環中,每個號碼請輸入

i=1:6; 
for i:6; 
    settings(i).exposure=input(...); 
    settings(i).rebalancing=input(...); 
end 

我想你應該能夠與此有關。 (其已一段,因爲我最後一次使用用Matlab電腦,所以我無法證實)

+0

首先,[你不應該使用'i'作爲變量名](http://stackoverflow.com/q/14790740/4221706),因爲它表示虛數單位。其次,不要在for循環之前定義'i',因爲它只會在下一行重新定義。第三,語法是'for i = 1:6'。 – hbaderts

+0

是的,對不起。我最近一直在使用比Matlab更多的JAVA,並陷入了這種習慣。 –