是否有用于将数组拆分为多个数组的 matlab 函数?

Is there a matlab function for splitting an array for several array?

我想自动将一个数组拆分成几个数组。例如:

a=[1 2 3 4 5 6 7 8 9]
b=[2 5]

因此,我想将其拆分为:

c1=[1 2]
c2=[3 4 5]
c3=[6 7 8 9]

怎么做?

一个简单的方法是使用 mat2cell:

a = [1 2 3 4 5 6 7 8 9];
b = [2 5];
c = mat2cell(a, 1, diff([0 b numel(a)]));

这给出了一个元胞数组 c,其中包含 a 的子数组:

>> celldisp(c)
c{1} =
     1     2
c{2} =
     3     4     5
c{3} =
     6     7     8     9