Clear Filters
Clear Filters

How to split an array at a specific component?

1 view (last 30 days)
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.

Accepted Answer

Walter Roberson
Walter Roberson on 14 Feb 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

More Answers (0)

Categories

Find more on Multidimensional Arrays in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!