Produit de deux matrices sous python

Résolu/Fermé
energetix
Messages postés
10
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
9 juin 2010
- 6 nov. 2009 à 21:02
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 !!!
A voir également:

3 réponses

loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
147
8 nov. 2009 à 10:02
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.
24
energetix
Messages postés
10
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
9 juin 2010
36
9 nov. 2009 à 17:28
ok grand merci a toi ;-) !!
1