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

780 views (last 30 days)
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 :)

Accepted Answer

Star Strider
Star Strider on 18 Sep 2014
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 Comments
Star Strider
Star Strider on 18 Sep 2014
My pleasure!
(The sincerest expression of appreciation here on MATLAB Answers is to Accept the Answer that most closely solves your problem.)

Sign in to comment.

More Answers (1)

Guillaume
Guillaume on 18 Sep 2014
find(V, 1);
find doesn't care that your vector is logical, it'll find the non-zero values anyway.
  3 Comments
Velautham Daksiya
Velautham Daksiya on 14 Oct 2021
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

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!