Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

矩阵

矩阵是一组数字

矩阵是矩形数组

矩阵以的形式排列。

矩阵维度

矩阵1行和3

C =  
2 5 3

矩阵的维度为(1x3)。


此矩阵有2行和3

C =  
2 5 3
4 7 1

矩阵的维度为(2x3)。


方阵

方阵是行数和列数相同的矩阵。

n×n矩阵称为n阶方阵。

2×2矩阵(二阶方阵)

C =  
1 2
3 4

4×4矩阵(四阶方阵)

C =  
1 -2 3 4
5 6 -7 8
4 3 2 -1
8 7 6 -5

对角矩阵

对角矩阵的对角线元素有值,其他元素为

C =   
2 0 0
0 5 0
0 0 3


标量矩阵

标量矩阵的对角线元素相等,其他元素为

C =   
3 0 0 0
0 3 0 0
0 0 3 0
0 0 0 3

单位矩阵

单位矩阵的对角线元素为1,其他元素为0

这是矩阵中的1,符号为I

I =   
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

如果用单位矩阵乘以任何矩阵,结果等于原始矩阵。


零矩阵

零矩阵(零矩阵)仅包含零。

C =   
0 0 0
0 0 0

相等矩阵

如果每个元素都对应,则矩阵是相等的。

2 5 3
4 7 1
  =  
2 5 3
4 7 1

负矩阵

矩阵的负数很容易理解。

  -  
-2 5 3
-4 7 1
  =  
2 -5 -3
4 -7 -1

JavaScript中的线性代数

在线性代数中,最简单的数学对象是标量

const scalar = 1;

另一个简单的数学对象是数组

const array = [ 1, 2, 3 ];

矩阵是二维数组

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

向量可以写成只有一列的矩阵

const vector = [ [1],[2],[3] ];

向量也可以写成数组

const vector = [ 1, 2, 3 ];

JavaScript矩阵运算

在JavaScript中对矩阵进行编程运算,很容易变成一堆循环。

使用JavaScript库可以省去很多麻烦。

用于矩阵运算最常见的库之一是math.js

可以用一行代码将其添加到网页中。

使用math.js

<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/9.3.2/math.js"></script>

矩阵加法

如果两个矩阵的维度相同,我们可以将它们相加。

2 5 3
4 7 1
 + 
4 7 1
2 5 3
 = 
6 12 4
6 12 4

示例

const mA = math.matrix([[1, 2], [3, 4], [5, 6]]);
const mB = math.matrix([[1,-1], [2,-2], [3,-3]]);

// 矩阵加法
const matrixAdd = math.add(mA, mB);

// 结果 [ [2, 1], [5, 2], [8, 3] ]

自己试试 »


矩阵减法

如果两个矩阵的维度相同,我们可以将它们相减。

2 5 3
4 7 1
 - 
4 7 1
2 5 3
 = 
-2 -2 2
2 2 -2

示例

const mA = math.matrix([[1, 2], [3, 4], [5, 6]]);
const mB = math.matrix([[1,-1], [2,-2], [3,-3]]);

// 矩阵减法
const matrixSub = math.subtract(mA, mB);

// 结果 [ [0, 3], [1, 6], [2, 9] ]

自己试试 »

要加或减矩阵,它们必须具有相同的维度。


标量乘法

虽然行和列中的数字称为矩阵,但单个数字称为标量

将矩阵乘以标量很容易。只需将矩阵中的每个数字乘以标量即可。

2 5 3
4 7 1
   x 2 =   
4 10 6
8 14 2

示例

const mA = math.matrix([[1, 2], [3, 4], [5, 6]]);

// 矩阵乘法
const matrixMult = math.multiply(2, mA);

// 结果 [ [2, 4], [6, 8], [10, 12] ]

自己试试 »

示例

const mA = math.matrix([[0, 2], [4, 6], [8, 10]]);

// 矩阵除法
const matrixDiv = math.divide(mA, 2);

// 结果 [ [0, 1], [2, 3], [4, 5] ]

自己试试 »


矩阵转置

对矩阵进行转置,意味着将行替换为列。

当您交换行和列时,您将矩阵绕其对角线旋转。

A =   
1 2
3 4
    AT =  
1 3
2 4

矩阵乘法

矩阵乘法比较困难。

我们只有在矩阵A的数与矩阵B的数相同时才能将两个矩阵相乘。

然后,我们需要计算“点积”。

我们需要将A的每一列中的数字乘以B的每一行中的数字,然后将这些积加起来。

示例

const mA = math.matrix([1, 2, 3]);
const mB = math.matrix([[1, 4, 7], [2, 5, 8], [3, 6, 9]]);

// 矩阵乘法
const matrixMult = math.multiply(mA, mB);

// 结果 [14, 32, 50]

自己试试 »

解释

A B C
1 2 3
 x 
1 4 7
2 5 8
3 6 9
 = 
14 32 50

(1,2,3) * (1,2,3) = 1x1 + 2x2 + 3x3 =14
(1,2,3) * (4,5,6) = 1x4 + 2x5 + 3x6 =32
(1,2,3) * (7,8,9) = 1x7 + 2x8 + 3x9 =50

如果您知道如何乘以矩阵,就可以求解许多复杂的方程。

示例

您出售玫瑰。

  • 红玫瑰每朵3美元。
  • 白玫瑰每朵4美元。
  • 黄玫瑰每朵2美元。
  • 星期一您卖出260朵玫瑰。
  • 星期二您卖出200朵玫瑰。
  • 星期三您卖出120朵玫瑰。

所有销售的价值是多少?

Red Rose$3 White$4 Yellow$2
周一1208060
周二907040
周三604020

示例

const mA = math.matrix([3, 4, 2]);
const mB = math.matrix([[120, 90, 60], [80, 70, 40], [60, 40, 20]);

// 矩阵乘法
const matrixMult = math.multiply(mA, mB);

// 结果 [800, 630, 380]

自己试试 »

解释

A B
$3$4$2
 x 
120 90 60
80 70 40
60 40 20
 = 
$800 $630 $380
 = 
$1810

(3,4,2) * (120,80,60)= 3x120 + 4x80 + 2x60 = 800
(3,4,2) * (90,70,40)= 3x90 + 4x70 + 2x40 = 630
(3,4,2) * (60,40,20)= 3x60 + 4x40 + 2x20 = 380

矩阵分解

在AI中,您需要知道如何对矩阵进行分解。

矩阵分解是线性代数中的一个关键工具,特别是在线性最小二乘法中。


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.