Bonjour à tous,

Soit un vecteur "a" de nombre entiers, l'objectif recherché par le code suivant est de rechercher le nombre occurrence de tous les nombres pris successivement. Exemple

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
a = [1 1 1 2 2 5 3 1 1 4 4 4 8 9 5 5 8 5 5 1] ;
trois uns, deux deux, un cinq, un trois, ...
le résultat recherché est :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
     3     1
     2     2
     1     5
     1     3
     2     1
     3     4
     1     8
     1     9
     2     5
     1     8
     2     5
     1     1
Le programme est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
    a = [1 1 1 2 2 5 3 1 1 4 4 4 8 9 5 5 8 5 5 1] ;
 
    vcm(1, 1) = 1    ;
    vcm(1, 2) = a(1) ;
 
    for i=2:length(a)
        if a(i-1) == a(i) 
            vcm(end, 1) = vcm(end, 1) + 1;
        else
            vcm(end+1, 1) = 1;
            vcm(end  , 2) = a(i) ;
        end
    end
Je veux solliciter votre expérience en matlab, pour chercher une autre solution plus simple (version vectorisée) de ce programme.

Est-ce que c'est possible ?