B = im2col(A,[m n],block_type)
功能:将矩阵A分为m×n的子矩阵,再将每个子矩阵作为B的一列。
(1)当block_type为distinct时,将A分解为互不重叠的子矩阵,若不足m×n,以0补足。
例:
>> A = [ 1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
26 27 28 29 30 ];
>> B=im2col(A,[3,3],'distinct')
B =
1 16 4 196 21 9 24
11 26 14 29
2 17 5 20
7 22 10 25
12 27 15 30
3 18 0 0
8 23 0 0
13 28 0 0
(2)当block_type为sliding时,将A分解为尽可能多的子矩阵。
>> A=[1 2 3
4 5 6
7 8 9];
>> B=im2col(A,[2,2],'sliding')
B =
1 4 2 5
4 7 5 8
2 5 3 6
5 8 6 9