A Tensor is a **N-dimensional Matrix**:

- A Scalar is a 0-dimensional tensor
- A Vector is a 1-dimensional tensor
- A Matrix is a 2-dimensional tensor

A **Tensor** is a generalization of **Vectors** and **Matrices** to higher dimensions.

## Tensor Ranks

The number of directions a tensor can have in a **N**-dimensional space, is called the **Rank** of the tensor.

The rank is denoted **R**.

A **Scalar** is a single number. **R = 0**.

- It has 0 Axes
- It has a Rank of 0
- It is a 0-dimensional Tensor

A **Vector** is an array of numbers. **R = 1**.

- It has 1 Axis
- It has a Rank of 1
- It is a 1-dimensional Tensor

A **Matrix** is a 2-dimensional array. **R = 2**.

- It has 2 Axis
- It has a Rank of 2
- It is a 2-dimensional Tensor

## Real Tensors

Technically, all of the above are tensors, but when we speak of tensors, we generally speak of matrices with a dimension larger than 2 (**R > 2**).

## 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 ];

Tensors are **N-dimensional Arrays**:

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

## JavaScript Tensor Operations

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

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

One of the most common libraries to use for tensor operations is called **tensorflow.js**.

### Tensor Addition

const tensorA = tf.tensor([[1, 2], [3, 4], [5, 6]]);

const tensorB = tf.tensor([[1,-1], [2,-2], [3,-3]]);

// Tensor Addition

const tensorAdd = tensorA.add(tensorB);

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

### Tensor Subtraction

const tensorA = tf.tensor([[1, 2], [3, 4], [5, 6]]);

const tensorB = tf.tensor([[1,-1], [2,-2], [3,-3]]);

// Tensor Subtraction

const tensorSub = tensorA.sub(tensorB);

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

Learn more about Tensorflow … (courtesy by W3Schools.com)