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 vecteur


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Par défaut Permutation de vecteur
    S'il reste quelqu'un à faire des maths en ce jour d'armistice, peut-être a-t-il une indication à me donner...


    z=[1;2;2;1;1;3]

    Comment obtenir le plus simplement possible les six orbites dans l'action du groupe S3 sur les valeurs des coefficients de z ?

    De façon moins mathématique :

    Si on applique la permutation s(2,1,3) aux valeurs des coefs de z on obtient [3;1;1;3;3;2] (2 est changé en 1 , 1 est changé en 3 et 3 en 2).

    Mais il existe cinq autres permutations possibles s(1,2,3), s(1,2), s(1,3), s(3,2), et l'identité.

    A chacun d'eux correspond un vecteur z transformé. Comment les obtenir les six le plus synthétiquement possible.


    De façon encore moins mathématique :


    J'ai en entrée z=[1;2;2;1;1;3]


    Je veux en sortie :

    [1;2;2;1;1;3]
    [2;3;3;2;2;1]
    [3;1;1;3;3;2]
    [2;1;1;2;2;3]
    [1;3;3;1;1;2]
    [3;2;2;3;3;1]

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Par défaut
    J'ai trouvé une solution qui tient en une ligne de commande. Si quelqu'un connait une fonction ad-hoc, ça m'intéresse toujours.

    Bonne journée, joyeux défilé.

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

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

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

    Pourrais-tu nous montrer ce que tu as utiliser, ca pourrait servir à d'autres personnes.

    Merci,
    Duf

  4. #4
    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 idée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    s = perms(1:3)
     
    z = [1 2 2 1 1 3]
     
    s(:,1)*(z==1) + s(:,2)*(z==2) + s(:,3)*(z==3)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Par défaut
    Je ne vous avais pas donné ma solution parce que je la trouvais laborieuse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Perm=perms(1:3);
     
    for j=1:gamma(3+1) for k=1:3 zPerm(z==k,j)=Perm(j,k);end;end
    D'ailleurs Dut a proposé nettement mieux depuis. Merci Dut.

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

Discussions similaires

  1. Permutation des données dans un vecteur
    Par arbas dans le forum MATLAB
    Réponses: 5
    Dernier message: 23/04/2011, 11h40
  2. [Débutant] permutation entre 2 valeurs dans un vecteur
    Par Riham Darine dans le forum MATLAB
    Réponses: 4
    Dernier message: 22/04/2011, 01h48
  3. besoin de permuter aleatoirement un vecteur
    Par mi.iscae dans le forum MATLAB
    Réponses: 1
    Dernier message: 31/03/2009, 07h58
  4. Permutation des nombres dans un vecteur
    Par Cluster dans le forum Pascal
    Réponses: 6
    Dernier message: 01/03/2009, 20h14

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