使用步长和 window 大小重塑向量
Reshape vector with a step and window size
我有一个向量,例如
A = [1 2 3 4 5 6 7 8]
我想 "reshape" 它与 windowsize=4
和 stepsize=2
矩阵化,这样得到的矩阵是
b = [ 1 3 5;
2 4 6;
3 5 7;
4 6 8 ]
你可以建立一个索引矩阵,然后索引到A
...
A = [1 2 3 4 5 6 7 8];
windowsize = 4;
stepsize = 2;
% Implicit expansion to create a matrix of indices
idx = bsxfun( @plus, (1:windowsize).', 0:stepsize:(numel(A)-windowsize) );
b = A(idx);
注意;在这种情况下,idx
和 b
是相同的,但是您需要最后的索引步骤,假设 A
在您的实际示例中不仅仅是连续的整数。
我有一个向量,例如
A = [1 2 3 4 5 6 7 8]
我想 "reshape" 它与 windowsize=4
和 stepsize=2
矩阵化,这样得到的矩阵是
b = [ 1 3 5;
2 4 6;
3 5 7;
4 6 8 ]
你可以建立一个索引矩阵,然后索引到A
...
A = [1 2 3 4 5 6 7 8];
windowsize = 4;
stepsize = 2;
% Implicit expansion to create a matrix of indices
idx = bsxfun( @plus, (1:windowsize).', 0:stepsize:(numel(A)-windowsize) );
b = A(idx);
注意;在这种情况下,idx
和 b
是相同的,但是您需要最后的索引步骤,假设 A
在您的实际示例中不仅仅是连续的整数。