例如,我有一个矢量
A = [1 2 3 4 5 6 7 8]我想用windowsize = 4和stepize = 2将其“重新整形”为矩阵,这样得到的矩阵就是
b = [1 3 5; 2 4 6; …
您可以设置索引矩阵,然后只需索引 A ...
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 在你的真实例子中不仅仅是连续的整数。
idx
b