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 :

Vectorisation et concaténation


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Vectorisation et concaténation
    Bonsoir,

    Je me donne une matrice du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A = [1 2 2 2 1 1;12 13 14 15 16 17]
    La première ligne est un ensemble d'indices, la deuxième des valeurs.

    J'aimerais, vectoriellement (sans boucle), créer une nouvelle matrice B classant les différentes valeurs selon leur place (indice).

    Ici, ça donnerait : B = [12 16 17; 13 14 15].

    L'essai naïf B(A(1,: ))=A(2,: ) renvoie bien sûr B= [17 15]; il écrase les valeurs précédentes lues à ces places-là.

    Merci pour votre aide.

  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 : 53 166
    Points
    53 166
    Par défaut
    Un début de réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >> A = [1 2 2 2 1 1;12 13 14 15 16 17]
     
    A =
     
         1     2     2     2     1     1
        12    13    14    15    16    17
     
    >> [~,idx] = sort(A(1,:));
    >> B = reshape(A(2,idx),3,[]).'
     
    B =
     
        12    16    17
        13    14    15
    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
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour la réponse rapide. C'est effectivement ce que je ferai faute de mieux, mais je préfèrerais une méthode plus directe : mon problème est plus alambiqué que l'exemple ci-dessus et nécessiterait au moins un reshape supplémentaire.

    Mettons que j'initialise B comme étant la matrice nulle (2 lignes, N colonnes) et que mon ensemble de valeurs à classer ne contienne pas 0. N'y a-t-il pas moyen de le faire passer à la ligne dans B s'il s'apprête à écraser un coefficient non nul?

Discussions similaires

  1. Concaténation de 2 select en 1 seul
    Par Fleep dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/08/2003, 11h38
  2. Char(x) -> chaine concaténée d'espaces ?
    Par rgz dans le forum Débuter
    Réponses: 7
    Dernier message: 27/06/2003, 11h59
  3. Concaténation vertical ???
    Par loaded dans le forum Langage SQL
    Réponses: 10
    Dernier message: 07/05/2003, 15h44
  4. Concaténer TStrings
    Par Tuxxy dans le forum Composants VCL
    Réponses: 8
    Dernier message: 07/03/2003, 12h30
  5. Concaténation de String et Integer
    Par Ingham dans le forum Langage
    Réponses: 5
    Dernier message: 21/01/2003, 17h26

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