How to split an array at a specific component?

3 visualizaciones (últimos 30 días)
Ferial
Ferial el 14 de Feb. de 2021
Comentada: Ferial el 14 de Feb. de 2021
I have an array of length x (lets say 10) and I want to split the array at every occurence of the value 0.
For example A = [0,3,5,6,9,0,2], I want to form two separate array from this being B=[3,5,6,9] and C=[2]
Taking into consideration that the 0 could be anywhere in the array, could be in any number of occurences and could even not exist at all.

Respuesta aceptada

Walter Roberson
Walter Roberson el 14 de Feb. de 2021
A = [0,3,5,6,9,0,2]
A = 1×7
0 3 5 6 9 0 2
mask = A == 0;
starts = strfind([true mask], [1 0]);
stops = strfind([mask true], [0 1]);
output = arrayfun(@(T,P) A(T:P), starts, stops, 'uniform', 0);
celldisp(output)
output{1} = 3 5 6 9 output{2} = 2

Más respuestas (0)

Categorías

Más información sobre Get Started with MATLAB en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by