2013-02-21 136 views
2

任何人都知道如何将由以下matlab代码创建的残差获得到矢量A在MATLAB中获取残差到矢量

我试图通过在命令提示符下键入r得到的残差,但没有得到的残差

感谢。

代码:

clc; 
clear; 

a0 = 0.05; a1 = 0.1; b1 = 0.85; 
nu = randn(2300,1); 
epsi = zeros(2300,1); 
h = zeros(2300,1); 

for i=2: 2300 
    h(i) = a0 + a1 * epsi(i-1)^2 + b1 * h(i-1) ; 
    epsi(i) = nu(i) * sqrt(h(i)); 

end 

ytlast=epsi(2300); 
htlast=h(2300); 

yt1 = zeros(2300,1); 

for i=1: 2300 
    yt1(i) = epsi(i)*epsi(i); 
end 

yt=yt1(1301:2300); 

order = 15; 
m = arx(yt1, order); 

r = resid(iddata([yt1(1:order);yt1]), m); 
r = r(order+1:end); 
+1

在命令提示符处输入'r'时,你会看到什么? – ThijsW 2013-02-21 05:30:26

+0

具有2300个样本的时域数据集。 采样时间:1秒 输出单元(如果指定) e @ y1 – 2013-02-21 05:33:08

+0

在阅读'resid'的帮助文件后,我觉得'r'应该只包含残差。不幸的是,我现在无法测试它。我目前无法访问工具箱。 – ThijsW 2013-02-21 05:38:09

回答

4

首先使用get,看看有什么r有:

get(r) 
ans = 
       Domain: 'Time' 
       Name: '' 
      OutputData: [2315x1 double] 
        y: 'Same as OutputData' 
      OutputName: {'[email protected]'} 
      OutputUnit: {''} 
      InputData: [2315x0 double] 
        u: 'Same as InputData' 
      InputName: {0x1 cell} 
      InputUnit: {0x1 cell} 
       Period: [0x1 double] 
     InterSample: {0x1 cell} 
        Ts: 1 
       Tstart: [] 
    SamplingInstants: [2315x0 double] 
      TimeUnit: 'seconds' 
     ExperimentName: 'Exp1' 
       Notes: {} 
      UserData: [] 

然后,我想你想看看:

r.OutputData 

获得矢量你想...