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 :

permutation de colonnes dans une matrice


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Points
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 7
    Par défaut permutation de colonnes dans une matrice
    salut,
    je voudrai savoir s'il existe une fonction qui permutte deux colonnes d'une même matrice

  2. #2
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    20
    Points
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 20
    Points : 19
    Par défaut
    Peux-tu préciser si tu veux faire une permutation que tu choisis ? aléatoire ?
    Quelle taille fait ta matrice ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Points
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 7
    Par défaut
    une permutation que je choisit moi même : entre deux colonnes que je choisit; la matrice est de taille 5*15

  4. #4
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    157
    Points
    107
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 157
    Points : 107
    Par défaut
    salut,
    essaie ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    >> test=[1 2 5;5 8 4;5 4 7]
     
    test =
     
         1     2     5
         5     8     4
         5     4     7
     
    >> test(:,[3 1 2])
     
    ans =
     
         5     1     2
         4     5     8
         7     5     4
     
    >>

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Points
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 7
    Par défaut
    ça marche mais ça reste une solution pour des matrices de petites tailles, car dans le cas où on a plusieurs colonnes c'est pas pratique d'écrire la liste des numéros de colonnes dans l'ordre souhaité.
    J'ai trouvé cette solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    test=[1 2 5;5 8 4;5 4 7]
     
    test =
     
         1     2     5
         5     8     4
         5     4     7
     
    >> S=test(:,1);
    >> test(:,1)=test(:,2);
    >> test(:,2)=S;
    >> test
     
    test =
     
         2     1     5
         8     5     4
         4     5     7
    mais c'est une programmation manuelle, j'imagine que la fonction existe sur matlab

  6. #6
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Points
    4 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Par défaut
    Bonjour,

    Pour ton exemple tu peux faire de la façon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    test = test(:, [2 1 3]);
    Ca doit donner le même résultat, reste à voir comment tu peux l'adapter à ta solution finale...

    Bonne journée,
    Duf

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    Points
    52 919
    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 318
    Points : 52 919
    Par défaut
    Citation Envoyé par omar.ayadi Voir le message
    ça marche mais ça reste une solution pour des matrices de petites tailles, car dans le cas où on a plusieurs colonnes c'est pas pratique d'écrire la liste des numéros de colonnes dans l'ordre souhaité.
    La, il faudrait que tu développes un peu plus ton idée...
    Je ne vois pas où se situe le problème...15 colonnes ce n'est pas le bout du monde.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Points
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 7
    Par défaut
    tu as raison, mais j'ai d'autres cas où la matrice contient plusque 50 colonnes. Alors pour ces cas existe-t-il une fonction qui permet la permutation?

  9. #9
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    Points
    52 919
    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 318
    Points : 52 919
    Par défaut
    Tu peux toujours faire la permutation seulement sur les indices concernés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    X = rand(3,8)
     
    idx = 1:size(X,2);
    idx([1 2]) = idx([2 1]);
     
    X(:,idx)
    ou plus directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    X = rand(3,8)
    X(:,[1 2]) = X(:,[2 1])

  10. #10
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Points
    5 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Par défaut
    Salut!
    Si c'est vraiment une matrice, et non un simple tableau, tu peux la multiplier par une matrice de permutation, mais je pense que les solutions qui t'ont été proposées jusqu'ici sont plus rapides.
    Jean-Marc Blanc

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Points
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 7
    Par défaut
    merci Dut, c'est bien ça ce que je cherche!

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

Discussions similaires

  1. [2008R2] Problème de nombre de colonnes dans une matrice
    Par cana13 dans le forum SSRS
    Réponses: 5
    Dernier message: 17/11/2011, 12h51
  2. Nombre de colonnes dans une matrice
    Par kimTunisia dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 27/07/2011, 13h30
  3. permutation des colonnes d'une matrice
    Par jane40 dans le forum R
    Réponses: 2
    Dernier message: 26/04/2011, 14h00
  4. Suppression de colonne dans une matrice
    Par PaulTIM dans le forum MATLAB
    Réponses: 8
    Dernier message: 17/10/2009, 19h06
  5. [MDX][2k5] Insertion de colonne dans une matrice
    Par Reskibil dans le forum SSAS
    Réponses: 1
    Dernier message: 24/04/2008, 15h16

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