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

arraycontinuousgroupingindexlogical?referenceset

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?

Best Answer

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)