一、前提条件(必须满足,否则无法相乘)
设矩阵 A 维度:m 行 n 列
矩阵 B 维度:n 行 p 列
要求:A 的列数 = B 的行数,都等于 n
相乘结果矩阵 C=A×B,维度:m 行 p 列
二、计算公式
结果矩阵第 i 行第 j 列元素:

含义:A 的第 i 行,和 B 的第 j 列,对应相乘再全部相加。
举例

/**
* 矩阵乘法 A * B
* @param {number[][]} A m行n列
* @param {number[][]} B n行p列
* @returns {number[][]} m行p列结果矩阵
*/
function matrixMultiply(A, B) {
// 维度校验
const m = A.length;
const n = A[0].length;
const n2 = B.length;
const p = B[0].length;
if (n !== n2) {
throw new Error("A的列数必须等于B的行数,无法相乘");
}
// 初始化 m行p列全0矩阵
const res = Array.from({ length: m }, () => Array(p).fill(0));
// 三重循环
for (let i = 0; i < m; i++) {
for (let j = 0; j < p; j++) {
let sum = 0;
for (let k = 0; k < n; k++) {
sum += A[i][k] * B[k][j];
}
res[i][j] = sum;
}
}
return res;
}
// 测试
const A = [
[1, 2],
[3, 4]
];
const B = [
[5, 6],
[7, 8]
];
console.log(matrixMultiply(A, B));
// [ [19,22], [43,50] ]




