If I have a logical array with 2 or more sets of continuous true values, how do I just grab the first or second continual set, for example?

1 view (last 30 days)
Suppose I have the vertical logical array:
[0 0 0 1 1 1 1 0 0 0 1 1 0 0 ]'
What is the simplest way to reference (ie get row numbers) or extract just the first or set of true values (ie., ans = [4,5,6,7]) in the array?

Accepted Answer

Jan
Jan on 1 Aug 2017
Edited: Jan on 1 Aug 2017
v = [0 0 0 1 1 1 1 0 0 0 1 1 0 0];
ini = strfind(v, [0, 1]);
fin = strfind(v, [1, 0]);
idx = (ini(1) + 1):fin(1)
Or perhaps:
ini = find(v, 1);
fin = strfind(v, [1, 0]);
idx = ini:fin(1)

More Answers (0)

Categories

Find more on Variables in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!