im2col可以帮助你:
m =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
>> P = 3; Q = 3;
>> columnized = im2col(m,[P Q],'sliding');
>> nMatrices = size(columnized,2);
>> s = reshape(columnized, [P Q nMatrices])
s(:,:,1) =
1 2 3
5 6 7
9 10 11
s(:,:,2) =
5 6 7
9 10 11
13 14 15
s(:,:,3) =
2 3 4
6 7 8
10 11 12
s(:,:,4) =
6 7 8
10 11 12
14 15 16
带有’sliding’选项的im2col查找所有重叠的子矩阵,并将每个子矩阵作为列中的(P·Q)元素列向量返回.为了将这些转换回矩阵,我们将该(P·Q)×((N-P 1)·(M-Q 1))矩阵重新整形为P×Q×((N-P 1)·(M-Q 1))1.