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

VBA Discussion :

Produit de matrices en vba


Sujet :

VBA

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Produit de matrices en vba
    Bonjour,

    J'ai le problème suivant. Je dois faire le produit d'une matrice et d'un vecteur en vba et je ne sais pas comment faire. J'ai déjà tenté de définir mes vecteurs avec le code qui suit:
    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
    19
    20
     
     
    Option Explicit
    Dim matrice(1 To 3, 1 To 3) As Single
     
    matrice(1, 1) = Cells(4, 2).Value
    matrice(1, 2) = Cells(4, 3).Value
    matrice(1, 3) = Cells(4, 4).Value
    matrice(2, 1) = Cells(5, 2).Value
    matrice(2, 2) = Cells(5, 3).Value
    matrice(2, 3) = Cells(5, 4).Value
    matrice(3, 1) = Cells(6, 2).Value
    matrice(3, 2) = Cells(6, 3).Value
    matrice(3, 3) = Cells(6, 4).Value
     
    Dim vecteur(1 To 3) As Single
     
    vecteur(1, 1) = Cells(2, 1).Value
    vecteur(1, 2) = Cells(2, 2).Value
    vecteur(1, 3) = Cells(2, 3).Value
    Mon but final est de calculer par simulation les proportions à long terme entre 3 états d'une chaine de Markov.

    Merci à l'avance de votre aide!

  2. #2
    Membre actif Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    574
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 574
    Points : 258
    Points
    258
    Par défaut
    Bonjour,

    Pour mettre les valeur de ta feuille dans ta matrice, au lieu de les rentrer ligne par ligne dans le code, utilise 2 boucle For imbriquées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For i = 1 to 3
       For j = 1 to 3
          matrice(i,j)=cells(i+3,j+1).value
       Next
    Next
    Ensuite, pour calculer le produit de tes 2 matrices, définit un e matrice résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim Matrice_Resultat(1 to Ubound(Matrice,2), 1 to Ubound(Vecteur,1)) as Single

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Mais ca ne m'indique pas comment faire le produit de 2 matrices?

    Merci quand même pour le truc pour simplifier ma déclaration de variables.

    Si quelqu'un d'autre a une idée sur le sujet ca m'aiderait beaucoup!

  4. #4
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 156
    Points : 105
    Points
    105
    Par défaut
    Bonjour

    Voici un exemple du produit de 2 matrices carrées d'ordre 2
    Les 2 matrices sont situées en B3:C4 et E3:F4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub PMatrice()
     
      Range("C11:D12").FormulaArray = "=MMULT(B3:C4,E3:F4)"
      ' emplacement matrice résultat en C11:D12
      ' produit des 2 matrices situées en B3:C4 et E3:F4
     
    End Sub
    Cordialement

  5. #5
    Membre actif Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    574
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 574
    Points : 258
    Points
    258
    Par défaut
    Citation Envoyé par zerpulks
    Mais ca ne m'indique pas comment faire le produit de 2 matrices?
    Ben, le produit de 2 Matrices
    |a b c | | j |
    |d e f | * | k |
    |g h i | | l |
    s'effecute en réalisant le produite de la 1ère ligne de ta matrice par la colonne de ta 2 matrice ainsi tu auras :
    |a*j + b*k + c*l |
    |d*j + e*k + f*l |
    |g*j + h*k + i*l |

Discussions similaires

  1. Matrice en VBA
    Par es.marco dans le forum Général VBA
    Réponses: 6
    Dernier message: 07/01/2019, 11h06
  2. matrice sous VBA
    Par sash6 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/12/2007, 14h35
  3. Produit de matrices avec les map
    Par Butterfly83 dans le forum SL & STL
    Réponses: 7
    Dernier message: 30/11/2007, 15h22
  4. dimension d'une matrice sous VBA
    Par galaguiloe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/06/2007, 11h20
  5. une erreur qui se produit sur un code VBA
    Par bambi98 dans le forum VBA Access
    Réponses: 3
    Dernier message: 10/02/2007, 14h13

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