คูณเมทริกซ์ 2 มิติ (Matrix Multiplication) ขนาด m×n กับ n×p ได้ผลลัพธ์ m×p
ตัวอย่าง
Matrix A (5×4) × Matrix B (4×6) = Matrix C (5×6)
ตัวอย่างโค้ด
const multiplyMatrices = (a, b) => {
if (!Array.isArray(a) || !Array.isArray(b) || !a.length || !b.length) {
throw new Error('Arguments must be 2D arrays');
}
const rowsA = a.length;
const colsA = a[0].length;
const colsB = b[0].length;
if (b.length !== colsA) {
throw new Error('Columns of A must equal rows of B');
}
const result = Array.from({ length: rowsA }, () =>
Array(colsB).fill(0)
);
for (let i = 0; i < rowsA; i++) {
for (let j = 0; j < colsB; j++) {
for (let k = 0; k < colsA; k++) {
result[i][j] += a[i][k] * b[k][j];
}
}
}
return result;
};
ผลลัพธ์
[ [15, 33, 51, 37, 34, 40], [33, 78, 123, 85, 76, 88], [51, 123, 195, 133, 118, 136], [7, 16, 25, 18, 17, 22], [31, 73, 115, 88, 73, 96] ]
คำอธิบายอัลกอริทึม
C[i][j] = Σ(A[i][k] × B[k][j]) สำหรับ k = 0 ถึง n-1
แต่ละเซลล์ในผลลัพธ์ = ผลรวมของการคูณแถว i ของ A กับคอลัมน์ j ของ B