在MATLAB中将数组拆分为多个部分

时间:2011-12-23 11:58:55

标签: matlab

我喜欢将数组拆分成相同的部分:

 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

哪个功能可以做到这一点?

2 个答案:

答案 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')