查看单个帖子
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何在MATLAB中从给定的输入数据生成以下矩阵和向量?

假设我有输入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中自动执行此操作的最佳方法是什么?


回答:
这是使用函数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

更多&回答...
poster 当前离线   回复时引用此帖