js实现矩阵
矩阵的创建与初始化
在JavaScript中,矩阵通常通过二维数组实现。以下是一个3x3矩阵的创建示例:
const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
动态创建m×n矩阵的通用方法:
function createMatrix(rows, cols, defaultValue = 0) {
return Array(rows).fill().map(() => Array(cols).fill(defaultValue));
}
矩阵基本运算
矩阵相加:
function addMatrices(a, b) {
return a.map((row, i) => row.map((val, j) => val + b[i][j]));
}
矩阵相乘:
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 transpose(matrix) {
return matrix[0].map((_, colIndex) => matrix.map(row => row[colIndex]));
}
矩阵实用操作
获取对角线元素:
function getDiagonal(matrix) {
return matrix.map((row, i) => row[i]);
}
矩阵旋转90度:
function rotate90(matrix) {
return matrix[0].map((_, index) =>
matrix.map(row => row[index]).reverse()
);
}
使用数学库
对于复杂矩阵运算,推荐使用数学库如math.js:

import * as math from 'mathjs';
// 创建矩阵
const m = math.matrix([[1, 2], [3, 4]]);
// 矩阵运算
const inv = math.inv(m); // 求逆
const det = math.det(m); // 行列式






