js实现矩阵
矩阵的创建与初始化
在JavaScript中,矩阵可以通过二维数组实现。创建一个3x3的零矩阵:
const matrix = [
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]
];
动态初始化NxM矩阵:
function createMatrix(rows, cols, defaultValue = 0) {
return Array.from({ length: rows }, () =>
Array.from({ length: cols }, () => defaultValue)
);
}
const myMatrix = createMatrix(2, 3); // 2行3列的零矩阵
矩阵基本运算
矩阵相加:
function addMatrices(a, b) {
return a.map((row, i) =>
row.map((val, j) => val + b[i][j])
);
}
矩阵转置:

function transpose(matrix) {
return matrix[0].map((_, colIndex) =>
matrix.map(row => row[colIndex])
);
}
矩阵乘法实现
矩阵乘法需要满足第一个矩阵的列数等于第二个矩阵的行数:
function multiplyMatrices(a, b) {
const result = [];
for (let i = 0; i < a.length; i++) {
result[i] = [];
for (let j = 0; j < b[0].length; j++) {
let sum = 0;
for (let k = 0; k < a[0].length; k++) {
sum += a[i][k] * b[k][j];
}
result[i][j] = sum;
}
}
return result;
}
特殊矩阵生成
生成单位矩阵:
function identityMatrix(size) {
return Array.from({ length: size }, (_, i) =>
Array.from({ length: size }, (_, j) =>
i === j ? 1 : 0
)
);
}
生成对角矩阵:

function diagonalMatrix(diagonal) {
const size = diagonal.length;
return Array.from({ length: size }, (_, i) =>
Array.from({ length: size }, (_, j) =>
i === j ? diagonal[i] : 0
)
);
}
矩阵实用操作
获取矩阵行列数:
const rows = matrix.length;
const cols = matrix[0].length;
矩阵克隆:
const cloned = matrix.map(row => [...row]);
矩阵打印:
function printMatrix(matrix) {
matrix.forEach(row => console.log(row.join(' ')));
}






