当前位置:首页 > JavaScript

js 实现矩阵

2026-03-14 08:19:02JavaScript

在 JavaScript 中实现矩阵操作可以通过多种方式完成,包括使用数组、自定义类或第三方库。以下是几种常见方法:

使用二维数组表示矩阵

矩阵可以直接用二维数组表示,每个子数组代表一行:

const matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

矩阵基本操作

访问元素
通过行列索引访问:

js 实现矩阵

const element = matrix[row][col];

矩阵转置
交换行和列:

function transpose(matrix) {
  return matrix[0].map((_, col) => matrix.map(row => row[col]));
}

矩阵乘法
两个矩阵相乘:

js 实现矩阵

function multiply(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;
}

使用自定义类封装

可以创建一个 Matrix 类封装操作:

class Matrix {
  constructor(data) {
    this.data = data;
    this.rows = data.length;
    this.cols = data[0].length;
  }

  multiply(other) {
    if (this.cols !== other.rows) throw new Error('维度不匹配');
    const result = new Array(this.rows);
    for (let i = 0; i < this.rows; i++) {
      result[i] = new Array(other.cols);
      for (let j = 0; j < other.cols; j++) {
        let sum = 0;
        for (let k = 0; k < this.cols; k++) {
          sum += this.data[i][k] * other.data[k][j];
        }
        result[i][j] = sum;
      }
    }
    return new Matrix(result);
  }
}

使用第三方库

对于复杂操作,推荐使用专门库如 math.js

import * as math from 'mathjs';

const matrixA = math.matrix([[1, 2], [3, 4]]);
const matrixB = math.matrix([[5, 6], [7, 8]]);
const result = math.multiply(matrixA, matrixB);

性能优化

对于大型矩阵,考虑使用 TypedArray(如 Float64Array)存储数据,或使用 WebGL/GPU 加速库(如 gpu.js)。

以上方法涵盖了从基础实现到高级应用的场景,可根据需求选择适合的方案。

标签: 矩阵js
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…