2013-02-21 89 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 

獲得矢量你想...