How to split a row vector into sub vectors with different sizes?

Let h = [1 2 3 4 5 6 7 8 9 10 11]
n1= 3, n2= 3 , n3 = 2, n4= 2
how can I create sub vectors(m1,m2,m3,m4) based on the length of n1, n2 , n3 , n4 starting from the second elemnt of h. The resulting sub vectrs should be like this:
m1= 2 3 4
m2 = 5 6 7
m3= 8 9
m4= 10 11
Note that n1, n2 , n3 , n4 can be of different sizes.

1 Kommentar

Don't even try to create individually named variables. The answer below puts them into 4 cells of a cell array which is much better.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 16 Nov. 2018

1 Stimme

h = [1 2 3 4 5 6 7 8 9 10 11];
n = [3, 3, 2, 2];
m = mat2cell(h(2:end),1,n)

4 Kommentare

+1 elegant
Thanks Andrei, sorry Iam not so good in matlab, could please complete the code until getting sub vectors m1,m2,m3,m4 separately like this:
m1= 2 3 4
m2 = 5 6 7
m3= 8 9
m4= 10 11

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by