【问题标题】:Getting residuals to a vector in MATLAB在 MATLAB 中获取向量的残差
【发布时间】:2013-02-06 08:36:56
【问题描述】:

任何人都知道如何将以下 matlab 代码创建的残差转换为向量 A 吗?

我试图通过在命令提示符下键入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);

【问题讨论】:

  • 在命令提示符下输入r 时看到什么?
  • 包含 2300 个样本的时域数据集。采样时间:1 秒输出单位(如果指定)e@y1
  • 在阅读了resid 的帮助文件后,我觉得r 应该只包含残差。不幸的是,我现在无法测试它。我目前无法访问工具箱。
  • 当我输入 r 时,我得到的只是上面的消息。请你明天早上看一下好吗?有点急。谢谢
  • 今晚我会试着看看它(我猜我在不同的时区)。不过,我敢肯定,还有其他人能够早点给你答案。

标签: matlab formatting regression matlab-guide


【解决方案1】:

先用get看看r有什么:

get(r)
ans = 
              Domain: 'Time'
                Name: ''
          OutputData: [2315x1 double]
                   y: 'Same as OutputData'
          OutputName: {'e@y1'}
          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

获取你想要的向量...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 2015-02-10
    • 1970-01-01
    • 2018-04-11
    • 2014-11-27
    相关资源
    最近更新 更多