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
     ❯   

Matrices

A matrix is set of Numbers.

A matrix is an Rectangular Array.

A matrix is arranged in Rows and Columns.

Matrix Dimensions

This Matrix has 1 row and 3 columns:

C =  
2 5 3

The Dimension of the matrix is (1x3).


This matrix has 2 rows and 3 columns:

C =  
2 5 3
4 7 1

The dimension of the matrix is (2x3).


Square Matrices

A Square Matrix is a matrix with the same number of rows and columns.

An n-by-n matrix is known as a square matrix of order n.

A 2-by-2 matrix (Square matrix of order 2):

C =  
1 2
3 4

A 4-by-4 matrix (Square matrix of order 4):

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

Diagonal Matrices

A Diagonal Matrix has values on the diagonal entries, and zero on the rest:

C =   
2 0 0
0 5 0
0 0 3


Scalar Matrices

A Scalar Matrix has equal diagonal entries and zero on the rest:

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

The Identity Matrix

The Identity Matrix has 1 on the diagonal and 0 on the rest.

This is the matrix equivalent of 1. The symbol is I.

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

If you multiply any matrix with the identity matrix, the result equals the original.


The Zero Matrix

The Zero Matrix (Null Matrix) has only zeros.

C =   
0 0 0
0 0 0

Equal Matrices

Matrices are Equal if each element correspond:

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

Negative Matrices

The Negative of a matrix is easy to understand:

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

Linear Algebra in JavaScript

In linear algebra, the most simple math object is the Scalar:

const scalar = 1;

Another simple math object is the Array:

const array = [ 1, 2, 3 ];

Matrices are 2-dimensional Arrays:

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

Vectors can be written as Matrices with only one column:

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

Vectors can also be written as Arrays:

const vector = [ 1, 2, 3 ];

JavaScript Matrix Operations

Programming matrix operations in JavaScript, can easily become a spaghetti of loops.

Using a JavaScript library will save you a lot of headache.

One of the most common libraries to use for matrix operations is called math.js.

It can be added to your web page with one line of code:

Using math.js

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

Adding Matrices

If two matrices have the same dimension, we can add them:

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

Example

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

// Matrix Addition
const matrixAdd = math.add(mA, mB);

// Result [ [2, 1], [5, 2], [8, 3] ]

Try it Yourself »


Subtracting Matrices

If two matrices have the same dimension, we can subtract them:

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

Example

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

// Matrix Subtraction
const matrixSub = math.subtract(mA, mB);

// Result [ [0, 3], [1, 6], [2, 9] ]

Try it Yourself »

To add or subtract matrices, they must have the same dimension.


Scalar Multiplication

While numbers in rows and columns are called Matrices, single numbers are called Scalars.

It is easy to multiply a matrix with a scalar. Just multiply each number in the matrix with the scalar:

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

Example

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

// Matrix Multiplication
const matrixMult = math.multiply(2, mA);

// Result [ [2, 4], [6, 8], [10, 12] ]

Try it Yourself »

Example

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

// Matrix Division
const matrixDiv = math.divide(mA, 2);

// Result [ [0, 1], [2, 3], [4, 5] ]

Try it Yourself »


Transpose a Matrix

To transpose a matrix, means to replace rows with columns.

When you swap rows and columns, you rotate the matrix around it's diagonal.

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

Multiplying Matrices

Multiplying matrices is more difficult.

We can only multiply two matrices if the number of colums in matrix A is the same as the number of rows in matrix B.

Then, we need to compile a "dot product":

We need to multiply the numbers in each column of A with the numbers in each row of B, and then add the products:

Example

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

// Matrix Multiplication
const matrixMult = math.multiply(mA, mB);

// Result [14, 32, 50]

Try it Yourself »

Explained:

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

If you know how to multiply matrices, you can solve many complex equations.

Example

You sell roses.

  • Red roses are $3 each
  • White roses are $4 each
  • Yellow roses are $2 each
  • Monday you sold 260 roses
  • Tuesday you sold 200 roses
  • Wednesday you sold 120 roses

What was the value of all the sales?

Red Rose$3 White$4 Yellow$2
Mon1208060
Tue907040
Wed604020

Example

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

// Matrix Multiplication
const matrixMult = math.multiply(mA, mB);

// Result [800, 630, 380]

Try it Yourself »

Explained:

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

Matrix Factorization

With AI, you need to know how to factorize a matrix.

Matrix factorization is a key tool in linear algebra, especially in Linear Least Squares.


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

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.