我喜欢将数组拆分成相同的部分:
a=[1 2 3 4 5 6 7 8 9 10]
n = 2;
b = split(a, n);
b =
1 2 3 4 5
6 7 8 9 10
哪个功能可以做到这一点?
答案 0 :(得分:14)
试试这个:
a = [1 2 3 4 5 6]
reshape (a, 2, 3)
答案 1 :(得分:13)
如果a
可以除以n
,那么实际上只能为RESHAPE提供一个参数。
要重塑为2行:
b = reshape(a,2,[])
要重塑为2列:
b = reshape(a,[],2)
请注意,重新整形按列工作,它先填充第1列,然后填充第2列,依此类推。要获得所需的输出,您必须重塑为2列,然后转置结果。
b = reshape(a,[],2)'
您可以在重塑之前进行检查:
assert(mod(numel(a),n)==0,'a does not divide to n')