SSA矩阵创建中的错误

时间:2014-04-08 06:09:42

标签: matlab matrix time-series

我想考虑以下matlab代码

http://www.mathworks.com/matlabcentral/fileexchange/8115-singular-spectrum-analysis-smoother/content/ssa.m

特别是

部分
Step1 : Build trayectory matrix

   N=length(x1); 
   if L>N/2;L=N-L;end
    K=N-L+1; 
   X=zeros(L,K);  
    for i=1:K
      X(1:L,i)=x1(i:L+i-1); 
    end

但是当我测试这个数据时

>> x1=[1;3;2;4;5;6;7;8;9];
>> L=5;
>> N=length(x1); 
   if L>N/2;L=N-L;end
    K=N-L+1; 
   X=zeros(L,K);  
    for i=1:K
      X(1:L,i)=x1(i:L+i-1); 
    end
>> X

X =

     1     3     2     4     5     6
     3     2     4     5     6     7
     2     4     5     6     7     8
     4     5     6     7     8     9

>> 

但它似乎没有问题,因为有更多的数据长度6而不是水平5,所以我该如何修复它?我应该如何确保其他部分也正常?感谢您的帮助

EDITED: 代码应该遵循示例

x1=[2 1 4 3 6 5 8 7];
>> X=create_matrix1(x1,5)

X =

     2     1     4     3     6
     1     4     3     6     5
     4     3     6     5     8
     3     6     5     8     7

0 个答案:

没有答案