How do I split a vector into parts using indexes?

29 visualizaciones (últimos 30 días)
David Haydock
David Haydock el 4 de Oct. de 2022
Respondida: Stephen23 el 4 de Oct. de 2022
I have a vector, say
x = 1:100;
and I have a vector that is indexes within the range of the size of x, say,
y=[10,40,60];
I want to cut up x so that I get the three vectors:
x1 = x(1:y(1));
x2 = (y(1)+1:y(2));
x3 = (y(2)+1:y(3));
I tried to use a loop but there is indexing errors due to Matlab indexing starting at 1.
Help appreciated.

Respuesta aceptada

Stephen23
Stephen23 el 4 de Oct. de 2022
x = 1:100;
y = [10,40,60];
C = mat2cell(x(1:y(end)),1,diff([0,y]))
C = 1×3 cell array
{[1 2 3 4 5 6 7 8 9 10]} {[11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40]} {[41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60]}

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by