Effacer les filtres
Effacer les filtres

The number of consecutive ocurrances in an array

2 vues (au cours des 30 derniers jours)
reham elnabawy
reham elnabawy le 30 Avr 2017
Commenté : Stephen23 le 1 Mai 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 commentaires
John Chilleri
John Chilleri le 1 Mai 2017
The b is a description of vector a:
Two 0s, then three 1s, then two 0s, then one 1.
Stephen23
Stephen23 le 1 Mai 2017
@Image Analyst: run length encoding.

Connectez-vous pour commenter.

Réponses (1)

Guillaume
Guillaume le 1 Mai 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, [])
  1 commentaire
Stephen23
Stephen23 le 1 Mai 2017
+1 Nice and simple. That is the way to do it.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Elementary Math dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by