How do you find the index of the first true value in a logical vector?

I need to find the index of the first 1 in a logical vector.
For example, I have a logical vector like this: V = [ 0 1 0 0 1 0 1 ] and I need a function/code that will tell me that the first true value is at index 2.
(If you can't tell from my question, I'm a beginner at Matlab.) Thanks so much for your help! I really appreciate it :)

 Risposta accettata

Use the find function:
V1 = find(V, 1, 'first')
The find function (in its most fundamental application) locates all non-zero entries in its argument. The syntax here tells it to locate only one such value, in this instance the first one it finds, and output the index of that value.

3 Commenti

Thank you so much kind stranger!
My pleasure!
(The sincerest expression of appreciation here on MATLAB Answers is to Accept the Answer that most closely solves your problem.)
Ah. Thank you for pointing that out to me.

Accedi per commentare.

Più risposte (1)

find(V, 1);
find doesn't care that your vector is logical, it'll find the non-zero values anyway.

3 Commenti

How to find first occurrence of any integer in an array
V1=find(V==a,b,'first')
a- integer to be found
b-no of entries to be found
'first' or 'last' - from first or from last of v

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by