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

59 views (last 30 days)
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.

Accepted Answer

John D'Errico
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

More Answers (0)

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!