假设我有输入data = [1 2 3 4 5 6 7 8 9 10]
和num = 4
。我想用这些来生成以下内容:
i = [1 2 3 4 5 6; 2 3 4 5 6 7; 3 4 5 6 7 8; 4 5 6 7 8 9]
o = [5 6 7 8 9 10]
基于以下逻辑:
length of data = 10
num = 4
10 - 4 = 6
i = [first 6; second 6;... num times]
o = [last 6]
在MATLAB中自动化的最佳方法是什么?
答案 0 :(得分:10)
这是使用函数HANKEL的一个选项:
>> data = 1:10;
>> num = 4;
>> i = hankel(data(1:num),data(num:end-1))
i =
1 2 3 4 5 6
2 3 4 5 6 7
3 4 5 6 7 8
4 5 6 7 8 9
>> o = i(end,:)+1
o =
5 6 7 8 9 10