Increase counter for each element in array

2 visualizzazioni (ultimi 30 giorni)
Hey,
given A = [1 1 3 4 5 6 6 7 7 7]. How could I return the sequence B =[1 2 1 1 1 1 2 1 2 3] such that each duplicate is counted and B is the same size as A?
I appreciate your help!

Risposta accettata

madhan ravi
madhan ravi il 17 Giu 2020
ix = A(:) == unique(A);
B = nonzeros(cumsum(ix) .* ix)
  6 Commenti
madhan ravi
madhan ravi il 18 Giu 2020
I knew you would come up with that question. That’s why you should experiment with 'stable' option in unique function.
Dario Walter
Dario Walter il 18 Giu 2020
Well done Madhan :). Thanks a lot!

Accedi per commentare.

Più risposte (0)

Tag

Prodotti


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by