Find a block of ones in a vector

11 views (last 30 days)
fcarl
fcarl on 12 Sep 2011
Hi,
I have a simple question but no matlab command for this :). I have a vector containing zeros and ones. I want to find every beginning of a block containing only of ones. For example: 000110011100. I want to get 4 and 8 as the indices indicating the beginning of a block with only ones.
Thank you for your efforts.

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 12 Sep 2011
a=[0 0 0 1 1 0 0 1 1 1 0 0]
ind=find(diff(a)==1)+1
Not too fast. This won't work if a starts with 1. Use this instead
a=[1 1 0 0 0 1 1 0 0 1 1 1 0 0]
ind=find(diff([0 a])==1)
  3 Comments
Andrei Bobrov
Andrei Bobrov on 12 Sep 2011
ind = strfind([0 a],[0 1])

Sign in to comment.

More Answers (1)

fcarl
fcarl on 12 Sep 2011
I recognized this ;) the function was helpfull :)

Categories

Find more on Entering Commands 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!