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 :

Trouver les correspondances


Sujet :

MATLAB

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 233
    Points : 254
    Points
    254
    Par défaut Trouver les correspondances
    Bonjour tout le monde,

    J’ai deux vecteurs de même taille PM1 et PM2 avec des montants (disons PM1 = [10; 20; 30] et PM2 = [11; 12; 13]) et les identifiants associés ID1 et ID2 (ID1 = [2; 1; 3] et ID2 = [2; 3; 1]). C’est à dire, dans mon exemple, la personne avec l’identifiant 1 a PM1 = 20 et PM2 = 13.

    Ce que je veux faire, c’est d’arranger PM2 dans le même ordre que PM1. C’est à dire, dans mon exemple, mettre PM2 = [11; 13; 12]. Pour qu’en faisant [PM1, PM2] j’aie en face les montants d’une même personne.

    Je n’arrive pas à le faire d’une manière élégante. Avec une boucle j’arrive, mais je suis sûr qu’il y a une solution plus jolie...

  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 302
    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 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Comme ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    PM1 = [10; 20; 30];
    PM2 = [11; 12; 13];
     
    ID1 = [2; 1; 3];
    ID2 = [2; 3; 1];
     
    [pasbesoin,idx] = sort(ID2);
     
    PM2 = PM2(idx);
    PM2 = PM2(ID1);
    ou encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    PM1 = [10; 20; 30];
    PM2 = [11; 12; 13];
     
    ID1 = [2; 1; 3];
    ID2 = [2; 3; 1];
     
    [pasbesoin,idx] = ismember(ID2,ID1);
    PM2(idx)
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 233
    Points : 254
    Points
    254
    Par défaut
    Merci ! La deuxième option me va parfaitement (je n'aime pas changer les données si on peut l'éviter).

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/09/2014, 15h23
  2. Réponses: 0
    Dernier message: 04/10/2013, 16h27
  3. Réponses: 3
    Dernier message: 26/04/2012, 16h41
  4. [GUI] Ou trouver les standard ?
    Par Braim dans le forum Windows
    Réponses: 5
    Dernier message: 01/10/2003, 08h13

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