# How can I find consecutive ones and the number of ones in each block?

21 views (last 30 days)
Tasi on 4 Mar 2015
I have an example variable defined as x=[5 1 1 1 1 1 7 1 1 5]; I would like to get the number of ones in each block of consecutive ones, so that my output would look like this: [5 2]. Is there a way to do write a command so that is valid in a loop in which the variable changes both its values and length? Thanks.
##### 0 CommentsShow -2 older commentsHide -2 older comments

Sign in to comment.

### Accepted Answer

John D'Errico on 4 Mar 2015
x=[5 1 1 1 1 1 7 1 1 5];
start1 = strfind([0,x==1],[0 1]);
end1 = strfind([x==1,0],[1 0]);
end1 - start1 + 1
ans =
5 2
##### 2 CommentsShow NoneHide None
Tasi on 4 Mar 2015
Thanks John, I appreciate it!
That's clever. THANKS

Sign in to comment.

### Categories

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