我有一个矢量x = [1,3,5,6,7],我想生成其中行y(k)= x(k:k + 2)的矩阵y。因此,这种情况下的结果矩阵为

1 3 5
3 5 6
5 6 7

如何使用循环在没有的情况下实现此?有一种巧妙的方法来进行索引编制吗?

最佳答案

这是Hankel matrix的顶部非零平方。只需使用 hankel :

>> X = hankel(x)
X =
     1     3     5     6     7
     3     5     6     7     0
     5     6     7     0     0
     6     7     0     0     0
     7     0     0     0     0
>> X = X(1:3,1:3)
X =
     1     3     5
     3     5     6
     5     6     7

精确指定的广义hankel输出:
w = floor(numel(x)/2);
X = hankel(x(1:end-w),x(w+1:end))

关于arrays - 从向量获取向量矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22159774/

10-10 16:13