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?

6 visualizaciones (últimos 30 días)
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?

Respuesta aceptada

Jan
Jan el 1 de Ag. de 2017
Editada: Jan el 1 de Ag. de 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)

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by