Count number of repeated element before next different number in array?

1 view (last 30 days)
Hi,
This is the problem:
I have an array of size 1xN, and this array is filled with 1 and 0. What I want is to count the number of repeated ones before a zero.
I will try to explain with an example.
A = [1,1,1,0,0,0,0,1,0,0,1,1,0,0,0,1,1,1,1];
What I want the code to do is to count how many times the ones are repeated before a zero. So, the answer is
OnesRepeated = [3, 1, 2, 4]
Can anyone help please? Thanks

Accepted Answer

Stephen23
Stephen23 on 14 Jan 2019
Edited: Stephen23 on 14 Jan 2019
>> D = diff([0,A==1,0]);
>> find(D<0)-find(D>0)
ans =
3 1 2 4

More Answers (1)

Adam
Adam on 14 Jan 2019
runs = diff( [0 find( diff( A ) ) numel( A )] )
if A(1) == 1
OnesRepeated = runs( 1:2:end );
else
OnesRepeated = runs( 2:2:end );
end

Community Treasure Hunt

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

Start Hunting!