Nhân hai ma trận chỉ có thể thực hiện khi số cột của ma trận đầu tiên bằng số hàng của ma trận thứ hai.
Nhân ma trận có thể thực hiện bằng vòng lặp lồng nhau. Chương trình dưới có hai ma trận x và y mỗi ma trận 3 hàng 3 cột. Ma trận kết quả z cũng sẽ có cấu trúc 3x3. Phần tử của mỗi hàng của ma trận đầu tiên được nhân với phần tử tương ứng trong cột của ma trận thứ hai.
Ví dụ
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]]
# Duyệt qua các hàng của X
for i in range(len(X)):
# Duyệt qua các cột của Y
for j in range(len(Y[0])):
# Duyệt qua các hàng của Y
for k in range(len(Y)):
result[i][j] += X[i][k] * Y[k][j]
for r in result:
print(r)
Kết quả
Kết quả: [84, 90, 96]
[201, 216, 231]
[318, 342, 366]