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 :

Multiplier chaque lignes d'une matrice par une valeur différente


Sujet :

MATLAB

  1. #1
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut Multiplier chaque lignes d'une matrice par une valeur différente
    Salut à tous,

    Je débute sur Matlab et je cherche désespérément comment multiplier chaque lignes d'une matrice par l'élément d'un vecteur qui est à sa hauteur : Je veux multiplier toutes les valeurs de la première ligne de X par le premier élément V, toute la deuxième ligne de X par le deuxième élément de V,...etc

    C'est pas clair!? Je, par exemple, veux obtenir ça :

    J'ai X et int
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    X =
         1     1
         1     2
         1     3
         1     4
     
    int =
        -2
        -3
        -3
        -4
    et je veux obtenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    résult =
         -2     -2
         -3     -6
         -3     -9
         -4     -16
    Existe-t-il une notation compacte pour faire ceci? Je sèche...
    Merci d'avance

  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
    Avec une simple boucle FOR-END :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for n = 1:size(X,2)
        result(:,n) = X(:,n).*int;
    end
    Sans boucle FOR-END :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result = bsxfun(@times,X,int);
    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 éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut
    Citation Envoyé par Dut Voir le message
    Sans boucle FOR-END :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result = bsxfun(@times,X,int);
    Sans la boucle c'est ce que je cherche, merci Dut.

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

Discussions similaires

  1. Remplacement d'une ligne par une autre dans une matrice
    Par Mathematiker dans le forum Scilab
    Réponses: 4
    Dernier message: 17/02/2015, 14h57
  2. remplir une matrice par des valeurs
    Par ursulinatm dans le forum R
    Réponses: 1
    Dernier message: 25/05/2012, 12h43
  3. Réponses: 5
    Dernier message: 25/10/2011, 11h03
  4. Réponses: 2
    Dernier message: 22/03/2011, 21h06
  5. Réponses: 4
    Dernier message: 31/10/2007, 20h27

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