考虑我有一个带维度的奇数矩阵:
x = <349*385 double>
然后我按照以下步骤执行此操作:
order = [1 9 2 3 10 17 25 18 11 4 5 12 19 26 33 ...
41 34 27 20 13 6 7 14 21 28 35 42 49 57 50 ...
43 36 29 22 15 8 16 23 30 37 44 51 58 59 52 ...
45 38 31 24 32 39 46 53 60 61 54 47 40 48 55 ...
62 63 56 64];
x = double(x);
y = im2col(x, [8 8],'distinct');
xb = size(y, 2);
y = y(order, :);
y = y(:)';
我明白了:
y = <64x2156 double>
xb = 2156;
y = <1x137984 double>
我将y转换为单元格:
for i=1:length(x)
r{i} = y(floor((end/length(x))*(i-1)+1):ceil((end/length(x))*i));
end
最后我将r反转为矩阵:
y1 = cell2mat(r);
我得到y1:
y1 = <1x138308 double>
我的问题是为什么y1不能与y得到相同的结果?我希望y1和y相同。将矩阵y划分为单元格r时,我可能错了。请帮帮我。