1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2007
    Messages : 64
    Points : 60
    Points
    60

    Par défaut Recherche de ligne dans une matrice

    Bonjour,

    Je cherche une manière élégante de trouver l'indice d'une ligne dans une matrice.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    A=[1,1,1,2,2,2,3,3,4,5,5;...
     1,2,5,8,9,7,8,9,3,1,4;...
     2,6,6,7,8,9,8,5,1,5,3;...
     3,6,1,3,3,7,8,9,5,2,4;...
    1,2,3,1,2,3,1,2,1,1,2;...
     4,5,6,7,8,2,3,4,5,6,4]
    b=[1,2,3,1,2,3,1,2,1,1,2]
    On doit donc trouver idx=5

    J'insiste sur le "élégante" car je saurais le faire avec des boucles for, if
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    idx=0;
    for i=1:6
        if isequal(AA(i,:),b)
            idx=i;
        end
    end
    idx
    par exemple mais j'aimerais progresser.

    J'ai essayé des trucs autour de find(A==b) mais sans succès...
    J'ai l'impression que ça va être simple mais je sèche lamentablement ^^

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    mai 2008
    Messages
    1 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 1 715
    Points : 2 310
    Points
    2 310

    Par défaut Recherche de ligne dans une matrice

    Bonjour,

    Une idée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    A=[1,1,1,2,2,2,3,3,4,5,5;...
        1,2,5,8,9,7,8,9,3,1,4;...
        2,6,6,7,8,9,8,5,1,5,3;...
        3,6,1,3,3,7,8,9,5,2,4;...
        1,2,3,1,2,3,1,2,1,1,2;...
        4,5,6,7,8,2,3,4,5,6,4]
    b=[1,2,3,1,2,3,1,2,1,1,2]
    Idx = find(ismember(A,b,'rows')==1)

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2007
    Messages : 64
    Points : 60
    Points
    60

    Par défaut

    Merci, bien joué, je savais que je n'étais pas loin

    Je ferais même un peu mieux maintenant avec ton idée vu que ismember renvoie des booléens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Idx = find(ismember(A,b,'rows'))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. supression de lignes dans une matrice
    Par o°celine°o dans le forum MATLAB
    Réponses: 1
    Dernier message: 08/08/2008, 16h25
  2. Supprimer des lignes dans une matrice
    Par Ptinéwik dans le forum MATLAB
    Réponses: 7
    Dernier message: 30/01/2008, 14h55
  3. Réponses: 2
    Dernier message: 08/03/2007, 12h06
  4. Stockage de lignes dans une matrice
    Par S4sha dans le forum MATLAB
    Réponses: 3
    Dernier message: 11/06/2006, 15h03
  5. Tracer une ligne dans une matrice
    Par S4sha dans le forum MATLAB
    Réponses: 4
    Dernier message: 30/05/2006, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo