Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python để nhân hai ma trận


Trong bài viết này, chúng ta sẽ tìm hiểu về giải pháp cho câu hỏi được đưa ra bên dưới.

Tuyên bố sự cố - Chúng ta được cho hai ma trận, chúng ta cần nhân chúng và in ra kết quả.

Để hai ma trận được nhân các cột của ma trận đầu tiên phải giống với các hàng của ma trận thứ hai

Mỗi khi điều kiện này được đánh giá là tính toán thực sự được thực hiện

Bây giờ chúng ta hãy quan sát khái niệm trong việc triển khai bên dưới−

Phương pháp 1 - Phương pháp bạo lực

Ví dụ

A = [[1, 2, 3],
   [4, 5, 6],
   [7, 8, 9]
]
B = [[5, 3, 3],
   [6, 5, 4],
   [0, 2, 0]
]
result= [[0, 0, 0],
   [0, 0, 0],
   [0, 0, 0]
]
# iterating by row
for i in range(len(A)):
   # iterating by column
   for j in range(len(B[0])):
      # iterating by rows
      for k in range(len(B)):
         result[i][j] += A[i][k] * B[k][j]
for ele in result:
   print(ele)

Đầu ra

[17, 19, 11]
[50, 49, 32]
[83, 79, 53]

Phương pháp 2 - Sử dụng hàm zip

Ví dụ

A = [[1, 2, 3],
   [4, 5, 6],
   [7, 8, 9]
]
B = [[5, 3, 3],
   [6, 5, 4],
   [0, 2, 0]
]
# using built-in zip function
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 ele in result:
   print(ele)

Đầu ra

[17, 19, 11]
[50, 49, 32]
[83, 79, 53]

Kết luận

Trong bài viết này, chúng ta đã học cách nhân hai ma trận.