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

1 visualización (últimos 30 días)
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

Respuesta aceptada

Stephen23
Stephen23 el 14 de En. de 2019
Editada: Stephen23 el 14 de En. de 2019
>> D = diff([0,A==1,0]);
>> find(D<0)-find(D>0)
ans =
3 1 2 4

Más respuestas (1)

Adam
Adam el 14 de En. de 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

Categorías

Más información sobre Logical en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by