Azzera filtri
Azzera filtri

The number of consecutive ocurrances in an array

1 visualizzazione (ultimi 30 giorni)
reham elnabawy
reham elnabawy il 30 Apr 2017
Commentato: Stephen23 il 1 Mag 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 Commenti
John Chilleri
John Chilleri il 1 Mag 2017
The b is a description of vector a:
Two 0s, then three 1s, then two 0s, then one 1.

Accedi per commentare.

Risposte (1)

Guillaume
Guillaume il 1 Mag 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, [])

Categorie

Scopri di più su Elementary Math in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by