假设我有一个矩阵a = [1 2 3 4 5 6];
,我如何以逐行方式重塑它,例如
reshape(a, 2, 3)
产生
1 2 3
4 5 6
而不是 MATLAB 生成的默认按列结果:
1 3 5
2 4 6
我相信这是一项微不足道的任务,它可能具有实现此目的的内置功能。我已经实现了一个完美的函数......但是,有没有更短、更整洁、更 MATLAB 的方式?谢谢。
function y = reshape2(x, m, n)
y = zeros(m, n);
ix = 0;
for i = 1:m
for j = 1:n
ix = ix + 1;
y(i, j) = x(ix);
end
end
end