改变缓冲功能的方向

时间:2013-10-10 12:25:56

标签: matlab matrix

我需要一个函数,将一个矢量分割成一个重叠的较小的帧,如buffer,但不是按列,而是应该按行完成。

这就是buffer的工作原理:

x = 1:20
x = buffer(x, 10, 5);

x =  0     1     6    11
     0     2     7    12
     0     3     8    13
     0     4     9    14
     0     5    10    15
     1     6    11    16
     2     7    12    17
     3     8    13    18
     4     9    14    19
     5    10    15    20

我想要的是这个:

x =  0    0    1    2
     1    2    3    4
     3    4    5    6
     5    6    7    8
     7    8    9   10
     9   10   11   12
    11   12   13   14
    13   14   15   16
    15   16   17   18
    17   18   19   20

是否有任何功能或方法可以实现这一目标?也许组合缓冲+一些重新排列?

1 个答案:

答案 0 :(得分:2)

首先在列中找出答案,然后转置结果矩阵:

buffer(x, 4, 2).'