0

のように、オーバーラップを使用して小さなフレームにベクトルを分割する関数が必要ですが、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

それを達成するための機能や方法はありますか?多分バッファ+いくつかの再配置の組み合わせ?

4

1 に答える 1

2

最初に列で答えを計算し、次に結果の行列を転置します。

buffer(x, 4, 2).'
于 2013-10-10T12:33:32.240 に答える