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 :

Trier une matrice par rapport à une autre [Débutant]


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Trier une matrice par rapport à une autre
    Bonjour, je cherche à trier une matrice en fonction de l'ordre d'une seconde matrice. J'ai essayé d'appliquer la formule [a,I]=sort(a) mais je n'y arrive pas.
    Voici un exemple pour éclairer mes propos:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     liste=[1 3 6;5 7 8;2 4 9];
    TW=[1 1 2; 2 1 2; 1 2 1];
    for i=1:3
        j=1:3;
        a=TW(i,j);
        [a,I]=sort(a);
        t=liste(I);
    end
    Avec cette exemple, je trouve t=[1 2 5 ].
    Je voudrai trier la matrice TW (et trouver TW=[1 1 2; 1 2 2; 1 1 2]) et ensuite trier la matrice liste selon l'ordre de TW (et trouver t=[1 3 6;5 8 7;2 9 4]) mais je n'y arrive pas. Pouvez-vous m'aider???

  2. #2
    Membre habitué
    Homme Profil pro
    étudiant ingénieur traitement images médicales
    Inscrit en
    Juin 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : étudiant ingénieur traitement images médicales
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 74
    Points : 131
    Points
    131
    Par défaut
    dans la matrice t que tu cherches à récupérer, es tu sure (dans ton exemple) de la 2e ligne?

    quand tu tries la 2e ligne de TW :

    [2 1 2] -> [1 2 2]

    ton index est [2 1 3]

    si tu l'appliques à la 2e ligne de liste, tu obtiens

    [5 7 8] -> [7 5 8]

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Si tu souhaites obtenir toutes les lignes, ne crois-tu pas qu'il manque quelque chose ?
    De plus travaillant sur chaque ligne : Remarque : Tu peux simplifier
    en

  4. #4
    Membre habitué
    Homme Profil pro
    étudiant ingénieur traitement images médicales
    Inscrit en
    Juin 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : étudiant ingénieur traitement images médicales
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 74
    Points : 131
    Points
    131
    Par défaut
    et à supposer que tu aies effectivement fait une erreur dans ton exemple, je te propose le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     liste=[1 3 6;5 7 8;2 4 9];
    TW=[1 1 2; 2 1 2; 1 2 1];
     
    [TW2 I] = sort(TW');
    TW2 = TW2'
    I=I';
     
    for i = 1 : 3
       t(i,:)= liste(i,I(i,:));
    end
    qui te renvoie TW2 correspondant à la matrice TW dont les lignes sont triées, et t correspondant à la matrice liste indexée de la même façon.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [TW2 I] = sort(TW');
    TW2 = TW2'
    I=I';
    Toutes ces transposées (qui devraient d'ailleurs plutôt être .') sont inutiles :

  6. #6
    Membre habitué
    Homme Profil pro
    étudiant ingénieur traitement images médicales
    Inscrit en
    Juin 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : étudiant ingénieur traitement images médicales
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 74
    Points : 131
    Points
    131
    Par défaut
    bien vu, je n'avais pas vu qu'on pouvait faire ça

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Merci pour vos propositions. Je le testerai lundi.

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Je l'ai testé. C'est tout à fait ce que je recherchai. Je vous remercie pour votre aide.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/03/2009, 14h44
  2. Réponses: 7
    Dernier message: 12/07/2006, 17h34
  3. [JFrame] Placer une fenêtre par rapport à une autre
    Par Invité dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 16/09/2005, 16h47
  4. Initialisation d'une colonne par rapport à une autre colonne
    Par jeromesco dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/04/2005, 17h15
  5. [JCombobox] modif d'une jcombobox par rapport à une autre
    Par The Wretched dans le forum Composants
    Réponses: 2
    Dernier message: 21/03/2005, 10h35

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