Matrice avec matlab

Résolu
Ballim -  
Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un petit problème; j'ai une matrice A de la forme
12 12
12 12
01 02
03 77
03 77
03 77

je cherche à avoir une matrice B de la forme

12 12
01 02
03 77

et un vecteur u qui indique le nombre de fois qu'apparait chaque ligne, ici dans mon exemple
je veux donc

u=[2;1;3] la ligne [12,12] apparait 2 FOIS, la ligne [01,02] une fois...

Quelqu'un pourrait me dire comment faire ou quelle fonctions utiliser?

3 réponses

Ballim
 
En fait j'arrive à avoir la matrice B avec la commande
B=unique(A,'rows')

c'est le vecteur u qui me pose problème
0
Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   1 835
 
Salut
[B I J]=unique(A,'rows','first');
u=sum(repmat(J,1,size(B,1))==repmat((1:size(B,1)),size(A,1),1));
[k l]=sort(I);
B=A(k,:);
u=u(l);
Ciao
0
ballim
 
Merci pour ta réponse mais j'ai un problème avec la fonction unique

??? Error using ==> unique
Too many input arguments.

Error in ==> essai at 4
[B I J]=unique(A,'rows','first');
0
Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   1 835
 
Salut
C'est bizarre ça O_o
T'as quelle version de Matlab ?
J'ai testé avant de te donner les 5 lignes de code et ça marchait bien.
0