如何在Matlab中将奇数矩阵划分为单元格

时间:2014-09-24 08:50:54

标签: matlab matrix

考虑我有一个带维度的奇数矩阵:

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时,我可能错了。请帮帮我。

0 个答案:

没有答案