Previous Index Next

Solved Examples

Question 3

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:

product of matrix

Points to remember:

  • The number of columns of the 1st matrix must equal the number of rows of the 2nd matrix.
  • And the result will have the same number of rows as the 1st matrix, and the same number of columns as the 2nd matrix.

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

Previous Index Next