Matrix multiplication in python

Solved
energetix Posted messages 13 Status Membre -  
energetix Posted messages 13 Status Membre -
Hello,
I have an issue finding the code to calculate the product of two matrices. Here is my 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

I run this program with the following lists:
m1 = [[0,0,0],[2,1,1],[2,1,1]]
m2 = [[3,2,1],[3,3,0],[0,1,2]]

and it returns: [[0, 0, 0], [7, 4, 1], [2, 3, 4]] except for the first line, the rest is wrong, but where is the error??? Please help!!!
Configuration: Windows XP Internet Explorer 7.0

3 réponses

loupius Posted messages 789 Status Membre 148
 
Ah, it's definitely 'more' readable ;-)
def multiply(m1, m2): m = [] if len(m1[0]) != len(m2): print "error" return False for i in range(len(m1)): line = [] for j in range(len(m2[0])): element = 0 for k in range(len(m1[0])): element = element + m1[i][k] * m2[k][j] line.append(element) m.append(line) return m
Just two little errors, but of course that's enough to make a program ineffective or even dangerous!
Good luck.
25
energetix Posted messages 13 Status Membre 36
 
ok, thank you very much to you ;-) !!
1