Produit de deux matrices sous python [Résolu/Fermé]

Messages postés
10
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
9 juin 2010
- - Dernière réponse : energetix
Messages postés
10
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
9 juin 2010
- 9 nov. 2009 à 17:28
Bonjour,
j'ai un soucis pour trouver le code pour calculer le produit de deux matrices voilà mon code :



def multiply(m1, m2):
m = []
if len(m1[0]) != len(m2):
return False
for i in range(len(m1)):
ligne = []
for j in range(len(m2[0])):
for k in range(len(m1[0])):
element = m1[i][j] * m2[i][j]
element = element + m1[i][k] * m2[k][i]
ligne.append(element)
m.append(ligne)
return m

je lance ce programme avec les listes suivantes :
m1 = [[0,0,0],[2,1,1],[2,1,1]]
m2 = [[3,2,1],[3,3,0],[0,1,2]]

et il me retourne : [[0, 0, 0], [7, 4, 1], [2, 3, 4]] a part la premiere ligne le reste est mauvais mais ou est l'erreur ??? please help !!!
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
698
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
132
15
Merci
Ah, c'est quand même 'plusse' lisible ;-)
def multiply(m1, m2):
  m = []
  if len(m1[0]) != len(m2):
    print "erreur"
    return False
  for i in range(len(m1)):
    ligne = []
    for j in range(len(m2[0])):
      element = 0
      for k in range(len(m1[0])):
        element = element + m1[i][k] * m2[k][j]
      ligne.append(element)
    m.append(ligne)
  return m
Seulement deux ch'tites erreurs, mais évidemment cela suffit à rendre un programme inefficace voire dangereux !
Bonne continuation.

Dire « Merci » 15

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 69915 internautes nous ont dit merci ce mois-ci

energetix
Messages postés
10
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
9 juin 2010
29 -
ok grand merci a toi ;-) !!
Messages postés
698
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
132
2
Merci
Quand on publie du code Python, il est absolument indispensable d'indenter le code, c'est-à-dire d'utiliser les balises de code (à droite des balises souligné), sinon le code est incompréhensible..
A suivre.
Messages postés
10
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
9 juin 2010
29
0
Merci
def multiply(m1, m2): 
     m = [] 
     if len(m1[0]) != len(m2): 
        return False 
     for i in range(len(m1)): 
          ligne = [] 
          for j in range(len(m2[0])): 
               for k in range(len(m1[0])): 
                    element = m1[i][j] * m2[i][j] 
                    element = element + m1[i][k] * m2[k][i] 
          ligne.append(element) 
     m.append(ligne) 
return m 

voila