2012-12-10 115 views
0

,我有以下數據:ET = [1 3 5 7 6 4],以下是我的代碼:商店的結果爲環

for i=1:3 
    meanET(i)=ET(:,1+(2*i-2)); %//for i=1,extract ET column 1 data 
    stdET(i)=ET(:,2+(2*i-2)); 
    totalET(i)=meanET(i)+stdET(i) 
end 

然而,MATLAB顯示一個錯誤,指出在轉讓A(I)=B,元素的數量B和I必須是相同的,因此我修改代碼這樣:

for i=1:3 
    meanET=ET(:,1+(2*i-2));%for i=1,extract ET column 1 data 
    stdET=ET(:,2+(2*i-2)); 
    totalET=meanET+stdET 
end 

運行後者代碼後,它顯示meanET=6stdET=4totalET=10,這意味着它只能存儲的數據對i = 3在工作區中。我想在工作區中獲得如 totalET=[4 12 10]的結果,對應於i = 1, 2, 3。我怎麼做?

回答

2

你應該只是聲明你的目標陣列在你的代碼的開頭:

meanET=zeros(size(ET,1),3); 
stdET=zeros(size(ET,1),3); 
for i=1:3 
    meanET(:,i)=ET(:,1+(2*i-2)); 
    stdET(:,i)=ET(:,2+(2*i-2)); 
end 
totalET=meanET+stdET 
+0

是什麼類型的含義meanET =零(大小(ET,1),1)?? –

+0

(它應該是3,我編輯了它)它告訴matlab你將存儲那個維度的向量/矩陣。這不是完全必要的,因爲matlab將允許你的向量增長,但它更好,因爲在執行期間不需要額外的內存操作) – Origin

+0

好吧,我明白了..謝謝! –

3

或者你可以只用一個簡單的量化的一種解決方案:

>> totalET = ET(1:2:5) + ET(2:2:6) 

totalET = 
    4 12 10 
+0

謝謝你的回答! –