我正在尝试计算19个时间序列变量的残差(res)。我期望一个(nIndices,:)矩阵作为计算的结果。 如果应用于1个单独的时间序列,则res计算可以完美地工作,但是如果我尝试使用所有时间序列的循环来计算它,则它不起作用。它只计算第一次系列的res(因此我得到1,:矩阵而不是nIndices,:)。 (nIndices函数正确计算了19个时间序列,并且之前多次应用于同一个编辑器文件中)。
我很感激任何关于我在这里失踪的提示。
for i=1:nIndices
res = returns(:,i)-mean(returns(:,i));
end
答案 0 :(得分:1)
您忘记迭代 res 变量来存储结果。它的方式是,它覆盖每次迭代后分配的值。你应该试试:
for i=1:nIndices
res(:,i)=returns(:,i)-mean(returns(:,i));
end
您还可以使用 bsxfun 对您的方法进行矢量化:
res = bsxfun(@minus,returns,mean(returns,1));