การคูณเมทริกซ์สองตัวเป็นไปได้ก็ต่อเมื่อจำนวนคอลัมน์ของเมทริกซ์ตัวแรกเท่ากับจำนวนแถวของเมทริกซ์ตัวที่สอง
การคูณสามารถทำได้โดยใช้ Nested Loops (ลูปซ้อน) โปรแกรมตัวอย่างมีเมทริกซ์ x และ y แต่ละตัวมี 3 แถวและ 3 คอลัมน์ เมทริกซ์ผลลัพธ์ z จะมีโครงสร้าง 3x3 เช่นกัน องค์ประกอบของแต่ละแถวของเมทริกซ์แรกจะถูกคูณกับองค์ประกอบที่ตรงกันในคอลัมน์ของเมทริกซ์ที่สอง
ตัวอย่าง
X = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
Y = [[10, 11, 12],
[13, 14, 15],
[16, 17, 18]]
result = [[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]
# วนลูปผ่านแถวของ X
for i in range(len(X)):
# วนลูปผ่านคอลัมน์ของ Y
for j in range(len(Y[0])):
# วนลูปผ่านแถวของ Y
for k in range(len(Y)):
result[i][j] += X[i][k] * Y[k][j]
for r in result:
print(r)
ผลลัพธ์
The result:
[84, 90, 96]
[201, 216, 231]
[318, 342, 366]