Python program for multiplying two matrices



Examples:

 Input: X = [[1, 7, 3], [3, 5, 6], [6, 8, 9]] Y = [[1, 1, 1 , 2], [6, 7, 3, 0], [4, 5, 9, 1]] Output: [55, 65, 49, 5] [57, 68, 72, 12] [90, 107, 111 , 21] 

Using Simple Nested Loops
In this program, we must use nested for loops to iterate over each row and each column.

# Program for multiplying two matrices using nested loops

 
# take a 3x3 matrix

A = [[ 12 , 7 , 3 ],

[ 4 , 5 , 6 ],

[ 7 , 8 , 9 ]]

 
# take a 3x4 matrix

B = [[[ 5 , 8 , 1 , 2 ],

[ 6 , 7 , 3 , 0 ],

[ 4 , 5 , 9 , 1 ]]

 

result = [[[ 0 , 0 , 0 , 0 ],

[ 0 , 0 , 0 , 0 ],

[ 0 , 0 , 0 , 0 ] ]

 
# iterate over line A

for i in range ( len (A)):

 

# iterate over the column by B

for j in range ( len (B [ 0 ])):

 

# iterate over lines B

  for k in range ( len (B)):

  result [i] [j] + = A [i] [k] * B [k] [j]

 

for r in result:

print (r)

Output:

 [114, 160, 60, 27] [74 , 97, 73, 14] [119, 157, 112, 23] 

Method 2: Matrix multiplication using a nested list. We are using

# Program for multiplying two matrices using a list

 
# take a 3x3 matrix

A = [[ 12 , 7 , 3 ],

[ 4 , 5 , 6 ],

[ 7 , 8 , 9 ]]

 
# take a 3x4 matrix

B = [[ 5 , 8 , 1 , 2 ],

[ 6 , 7 , 3 , 0 ],

  [ 4 , 5 , 9 , 1 ]]

 
# the result will be 3x4

result = [[ sum (a * b for a, b in zip (A_row, B_col) ) 

for B_col in zip ( * B)]

  for A_row in A]

 

for r in result:

print (r)

Output:

 [114, 160, 60, 27] [74, 97, 73, 14] [119, 157, 112, 23]