How to split an array at a specific component?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Ferial
am 14 Feb. 2021
Kommentiert: Ferial
am 14 Feb. 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.
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 14 Feb. 2021
A = [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)
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Operators and Elementary Operations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!