Nhân ma trận: cột ma trận đầu = hàng ma trận thứ hai. Kết quả: hàng của đầu, cột của sau. Dùng vòng lặp lồng cho ma trận nhỏ, NumPy cho ma trận lớn.
Dùng vòng lặp for
Ma trận A 2x3, B 3x2 → kết quả 2x2. Ba vòng lặp lồng.
Ví dụ
#matrix A with 2 rows
A = ([5,10,15],[20,25,30])
#matrix B with 2 columns
B = ([4,8],[12,10],[14,16])
result = [[0 for x in range(2)] for y in range(2)]
for i in range(len(A)):
for j in range(len(B[0])):
for k in range(len(B)):
result[i][j] += A[i][k] * B[k][j]
for r in result:
print(r) Đầu ra
[350, 380] [800, 890]
Dùng NumPy
NumPy có hàm dot() nhân ma trận một dòng.
Ví dụ
import numpy as np matrix_A = ([5,10,15],[20,25,30]) matrix_B = ([4,8],[12,10],[14,16]) result = np.dot(matrix_A,matrix_B) print(result)
Đầu ra
[[350 380] [800 890]]