Home > Software design >  Is there a matlab function for splitting an array for several array?
Is there a matlab function for splitting an array for several array?

Time:04-06

I want to split an array into several arrays automatically. For example:

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

Thus, I want to split it to:

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

How to do it?

CodePudding user response:

A simple way is to use mat2cell:

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

This gives a cell array c containing the subarrays of a:

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