The number of consecutive ocurrances in an array

1 visualización (últimos 30 días)
reham elnabawy
reham elnabawy el 30 de Abr. de 2017
Comentada: Stephen23 el 1 de Mayo de 2017
I have an array that is shown as: a=[0,0,1,1,1,0,0,1] and I would like to get the number of consecutive ocurrances in it along with the number itself meaning that I would like the output to be b=[2,0,3,1,2,0,1,1] where 0 occurred two consecutive times, 1 occurred three consecutive times, etc. Please help me and thank you in advance.
  3 comentarios
John Chilleri
John Chilleri el 1 de Mayo de 2017
The b is a description of vector a:
Two 0s, then three 1s, then two 0s, then one 1.

Iniciar sesión para comentar.

Respuestas (1)

Guillaume
Guillaume el 1 de Mayo de 2017
This is trivially achieved with diff and find:
a = [0, 0, 1, 1, 1, 0, 0, 1];
transitions = find(diff(a));
runlengths = diff([0, transitions, numel(a)]);
runvalues = a([transitions, end]);
valuelength = reshape([runlengths; runvalues], 1, [])

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by