Matlab:索引向量的正确方法;索引时间序列的Matrix维度出错

时间:2014-11-25 10:48:55

标签: matlab vector time-series

我正在尝试实施此公式:expression

其中y(t)是自回归过程AR(2)的输出。 t = 1,2,...,5000个数据样本,间隔相等。 p = 2。代码抛出错误

Error using  - 
Matrix dimensions must agree.

这是因为我不知道如何用变量L1中的索引表示法来表示滞后。有人可以通过显示正确的索引方法来帮助减轻此错误吗?这就是我的表现:

var_eps = 1;
epsilon = sqrt(var_eps)*randn(5000,1); % Gaussian signal exciting the AR model
 Y(1) = 0.0;
    Y(2) = 0.0;
    for n= 3:5000
    Y(n)=  0.1950*Y(n-1) -0.9500*Y(n-2)+ epsilon(n); %AR(1) model
    end
p=2;
t= p+1;
rho0 = randn(); %c
phi1 = 0.1950; 
phi2 = -0.9500; 
L1 = (Y(t:end) - rho0 - phi1.*Y(2:end) - phi2.*Y(1:end)).^2;

L11 = sum(L1);

1 个答案:

答案 0 :(得分:0)

因为Y(t:end)Y(2:end)Y(1:end)都有不同的长度,所以您无法添加或减去它们。可能更容易使用for循环:

L1 = 0;
for t=p+1:5000
    L1 = L1 + (Y(t) -rho0 - phi1*Y(t-1) - phi2*Y(t-2))^2;
end