我想考虑以下matlab代码
特别是
部分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