题
假设我有一个 1-12 矩阵和我想调整这个 4-通过-3 矩阵。我怎么可能这样做吗?
我目前的解决办法是一种丑陋:
for n = 1:(length(mat)/3)
out(n,1:3) = mat( ((n-1)*3 + 1):((n-1)*3 + 3) );
end
有没有更好的方式做到这一点?
解决方案
reshape
当然是正确的解决方案,因为通过所述 @gnovice 。
reshape
的一个很好的特征是,它允许这样:
A = 1:12;
B = reshape(A,4,[]);
B =
1 5 9
2 6 10
3 7 11
4 8 12
所以,如果你不知道有多少列会有,reshape
将计算它。同样,reshape
将填补行数,如果你离开了这一点。
C = reshape(A,[],4)
C =
1 4 7 10
2 5 8 11
3 6 9 12
不隶属于 StackOverflow