Question

J'ai un vecteur avec des valeurs entre 1 et N > 1. Certaines valeurs pourraient se produire plusieurs fois consécutivement. Maintenant, je veux avoir une deuxième ligne qui compte les entrées consécutivement et supprimer toutes ces entrées consécutivement occupantes, par exemple:

A = [1 2 1 1 3 2 4 4 1 1 1 2]'

conduirait à:

B = [1 1;
     2 1;
     1 2;
     3 1;
     2 1;
     4 2;
     1 3;
     2 1]

(Vous voyez, la deuxième colonne contient le nombre d'entrées consécutivement! Je suis tombé sur accumarray() Dans MATLAB récemment, mais je ne trouve aucune solution avec cette tâche, car elle considère toujours l'ensemble du vecteur et non seulement des entrées consécutivement.

Une idée?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top