IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

utilisation any ismember pour ligne entière d’une matrice


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 86
    Par défaut utilisation any ismember pour ligne entière d’une matrice
    Bonjour, j’ai un petit problème.

    Si on considère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    A = [1 7 ; 2 4 ; 3 6 ; 1 2]
    G = [ 1 2 3 ; 7 9 0 ; 9 0 8; 2 7 4; 3 6 7 ; 6 5 1]
    J’aimerai bien sélectionner les lignes de G où les 2 valeurs d’une ligne de A apparaissent (peu importe l’ordre). Donc j’aimerai bien avoir comme matrice de sortie :
    S = [ 1 2 3 ; 2 7 4 ; 3 6 7]
    J’ai utilisé la formule suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    S = G(any(ismember(G,A(:,:)),2),:)
    mais j’obtiens comme résultat
    S = [1 2 3; 7 9 0 ; 2 7 4 ; 3 6 7; 6 5 1]
    car il ne considère pas une ligne en entier de A mais opère valeur par valeur de A !

    Voilà si vous saviez m’aider, ce serait vraiment très sympathique !

    D'avance je vous remercie,

    Bernard

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Une solution... à tester bien entendu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    A = [1 7 ; 2 4 ; 3 6 ; 1 2]
    G = [ 1 2 3 ; 7 9 0 ; 9 0 8; 2 7 4; 3 6 7 ; 6 5 1]
     
    AA=sort(A,2);
    GG=sort([G(:,[1 2]);G(:,[1 3]);G(:,[2 3])],2);
     
    idx=find(ismember(GG,AA,'rows'));
    idx=idx-length(G)*floor(idx/length(G));
    idx=idx+length(G)*(idx==0);
     
    S=G(idx,:)
    Ne pas hésiter à tout séparer pour analyser ligne par ligne.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 86
    Par défaut
    Ok. C'est parfait !
    C'est bien ce que j'attendais...

    Merci beaucoup !

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

Discussions similaires

  1. [AC-2007] Mise en forme conditionnelle pour les lignes entières
    Par Oliv'83 dans le forum IHM
    Réponses: 8
    Dernier message: 25/08/2017, 15h24
  2. [XL-2013] Aide pour macro de recherche et copie de lignes entière en utilisant un dictionnaire
    Par magicsismic dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 06/04/2015, 14h43
  3. configurer et utiliser dns gandi pour mettre en ligne un site
    Par lodilodi dans le forum Serveurs (Apache, IIS,...)
    Réponses: 4
    Dernier message: 12/10/2009, 22h51
  4. Réponses: 27
    Dernier message: 14/12/2006, 20h49
  5. Réponses: 1
    Dernier message: 17/05/2006, 10h19

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