Write a program to find the product of two matrices. For example, product of Matrix A of order 2x3 and Matrix B of order 3x2 can be calculated as:
Points to remember:
Program (matrix.py)
def set(matrix, rows, columns):
for i in range(0,rows):
matrix += [[0]*columns]
for j in range(0,columns):
print('Enter data in [',i,'][',j,'] : ', end=' ')
matrix[i][j] = int(input())
def display(matrix, rows, columns):
for i in range(0,rows):
for j in range(0,columns):
print(matrix[i][j], end=' ')
print()
#product of matrix1 size m1xn1 and matrix2 size m2xn2
def product(matrix1, matrix2, matrix3, m1, n1, m2, n2):
for i in range(0, m1):
matrix3 += [[0]*n2]
for j in range(0, n2):
for t in range(0,n1):
matrix3[i][j] += matrix1[i][t] * matrix2[t][j]
def main():
r1 = int(input('Enter number of rows of matrix 1: '))
c1 = int(input('Enter number of columns of matrix 1: '))
r2 = int(input('Enter number of rows of matrix 2: '))
c2 = int(input('Enter number of columns of matrix 2: '))
if (c1 == r2):
A=[]
print('\nArray 1')
set(A, r1, c1)
print()
display(A, r1, c1)
print()
B = []
print('Array 2')
set(B, r2, c2)
print()
display(B, r2, c2)
print()
C = []
product(A, B, C, r1, c1, r2, c2)
print('Array 3')
display(C, r1, c2)
else:
print('Matrix multiplication is not possible')
main()
Output
Enter number of rows of matrix 1: 2 Enter number of columns of matrix 1: 3 Enter number of rows of matrix 2: 3 Enter number of columns of matrix 2: 2 Matrix 1 Enter data in [ 0 ][ 0 ] : 10 Enter data in [ 0 ][ 1 ] : 20 Enter data in [ 0 ][ 2 ] : 30 Enter data in [ 1 ][ 0 ] : 40 Enter data in [ 1 ][ 1 ] : 50 Enter data in [ 1 ][ 2 ] : 60 10 20 30 40 50 60 Matrix 2 Enter data in [ 0 ][ 0 ] : 2 Enter data in [ 0 ][ 1 ] : 3 Enter data in [ 1 ][ 0 ] : 4 Enter data in [ 1 ][ 1 ] : 5 Enter data in [ 2 ][ 0 ] : 6 Enter data in [ 2 ][ 1 ] : 7 2 3 4 5 6 7 Matrix 3 280 340 640 790