1

#Here I should get [[1,3,4],[2,5,7],[5,9,6]] as my final output but Instead im getting [[5,9,6],[5,9,6],[5,9,6]]

def matrix_mul(A, B):
    m1 = len(A) 
    n1 = len(A[0])
    m2 = len(B)
    n2 = len(B[0])
    if(n1!=m2):
        print("Not Possible")
    else:
        c = [[0]*n2]*m1
        for i in range(m1):
            for j in range(n2):
                total = 0
                for k in range(n1):
                    total += A[i][k] * B[k][j]
                c[i][j]=total
        return c
A = [[1,3,4],[2,5,7],[5,9,6]]
B = [[1,0,0],[0,1,0],[0,0,1]]    
print("AxB\n",matrix_mul(A, B))
desertnaut
  • 57,590
  • 26
  • 140
  • 166

1 Answers1

3

Change c = [[0]*n2]*m1 to

c = [[0]*n2 for _ in range(m1)]
rioV8
  • 24,506
  • 3
  • 32
  • 49