Split array into separate arrays, where difference between values exceeds a specific number
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Nathaniel Werner
el 29 de Jul. de 2018
Comentada: Rik
el 29 de Jul. de 2018
Let's say I have this array.
A = [1 2 3 4 10 11 12 20 21 22 23 29 30 31 32 40 41 42];
In this array, between the 4th and 5th the array increments by 6, then between the 7th and 8th by 8, with all others by 1 and so on. I'd like to split the array up into separate arrays between the jumps that exceed 1. For this array I'm expecting an output like this.
Out1 = [ 1 2 3 4 ];
Out2 = [ 10 11 12 ];
Out3 = [ 20 21 22 23 ];
Out4 = [ 29 30 31 32 ];
Out5 = [ 40 41 42 ];
2 comentarios
Respuesta aceptada
Stephen23
el 29 de Jul. de 2018
X = cumsum([true,diff(A)~=1]);
C = accumarray(X(:),A(:),[],@(m){m});
1 comentario
Más respuestas (0)
Ver también
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!