2015-05-10 181 views
0

我想爲我的19個時間序列變量計算殘差(res)。我期望一個(nIndices,:)矩陣作爲計算結果。 如果應用於1個單獨的時間序列,res計算將完美工作,但如果我嘗試使用所有時間序列的循環進行計算,則它不起作用。它只會計算第一次系列的res(因此我得到1,:矩陣而不是nIndices,:)。 (nIndices函數正確計算了19個時間序列,並且之前多次應用於相同的編輯器文件中)。For循環計算Matlab不起作用

我會很感激我在這裏失去的任何提示。

for i=1:nIndices 
    res = returns(:,i)-mean(returns(:,i)); 
end 

回答

1

你忘了在RES迭代變量來存儲結果。它的方式是覆蓋每次迭代後分配的值。你應該嘗試:

for i=1:nIndices 
    res(:,i)=returns(:,i)-mean(returns(:,i)); 
end 

您還可以通過使用bsxfun矢量化你的方法:

res = bsxfun(@minus,returns,mean(returns,1)); 
+1

完美的作品:-)。感謝您幫助菜鳥! – Carolin