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?
Configuration: Windows XP
Firefox 3.0.3

3 réponses

  1. 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
  2. Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   1 863
     
    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
    1. 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
  3. Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   1 863
     
    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