Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python คูณเมทริกซ์สองตัว


ในบทความนี้ เราจะเรียนรู้เกี่ยวกับวิธีแก้ปัญหาตามที่ระบุด้านล่าง

แจ้งปัญหา − เราได้เมทริกซ์สองตัว เราต้องคูณมันแล้วพิมพ์ผลลัพธ์ออกมา

เพื่อให้เมทริกซ์สองตัวคูณกัน คอลัมน์ของเมทริกซ์แรกจะต้องเหมือนกันทุกประการกับแถวของเมทริกซ์ที่สอง

ทุกครั้งที่มีการประเมินเงื่อนไขนี้เป็นการคำนวณจริง

ทีนี้มาดูแนวคิดในการใช้งานด้านล่างกัน:

แนวทางที่ 1 - วิธีบังคับแบบดุร้าย

ตัวอย่าง

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)

ผลลัพธ์

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

วิธีที่ 2 - การใช้ฟังก์ชัน zip

ตัวอย่าง

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)

ผลลัพธ์

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

บทสรุป

ในบทความนี้ เราได้เรียนรู้วิธีคูณเมทริกซ์สองตัว