Phần này trình bày cách nhân hai ma trận. Nhân ma trận chỉ thực hiện được nếu thỏa mãn điều kiện: cho ma trận A (m×n) và B (p×q), nhân được khi n = p. Ma trận kết quả C có kích thước (m×q).
Thuật toán
matrixMultiply(A, B):
Assume dim A = (m x n), dim B = (p x q)
Begin
if n != p then exit
define C matrix (m x q)
for i = 0 to m-1:
for j = 0 to q-1:
for k = 0 to p-1:
C[i][j] = C[i][j] + (A[i][k] * B[k][j]) // sửa: B[k][j] thay vì A[k][j]
done
done
done
End
Ví dụ C++
#include <iostream>
using namespace std;
int main() {
int product[10][10], r1=3, c1=3, r2=3, c2=3, i, j, k;
int a[3][3] = {{2,4,1},{2,3,9},{3,1,8}};
int b[3][3] = {{1,2,3},{3,6,1},{2,4,7}};
if(c1 != r2) {
cout << "Column of first matrix should equal row of second matrix";
} else {
cout << "First matrix:" << endl;
for(i=0;i
Kết quả
First matrix: 2 4 1 2 3 9 3 1 8 Second matrix: 1 2 3 3 6 1 2 4 7 Product: 16 32 17 29 58 72 22 44 66