Accelerating the pace of engineering and science

# Documentation Center

• Trial Software

## Compute with Matrices

### Basic Arithmetic Operations

When performing basic arithmetic operations on matrices, use the standard arithmetic operators. For example, add, substract, multiply, and divide the following two matrices by using the standard +, -, *, and / operators:

```A := matrix([[a, b], [c, d]]):
B := matrix([[1, 2], [3, 4]]):
A + B, A - B, A*B, A/B```

To perform basic operations on a matrix and a number, use the same operators. When you multiply a matrix by a number, MuPAD® multiplies all elements of a matrix by that number:

`5*A`

When you add a number to a matrix, MuPAD multiplies the number by an identity matrix, and then adds the result to the original matrix:

`A + 5`

 Note:   MATLAB® adds a number to each element of a matrix. MuPAD adds a number only to the diagonal elements of a matrix.

You can combine matrices with the same number of rows by using the concatenation operator (.):

`A.B`

### More Operations Available for Matrices

Besides standard arithmetic operations, many other MuPAD functions are available for computations involving matrices and vectors. To check whether a particular function accepts matrices as parameters, see the "Parameters" section of the function help page. The following functions can operate on matrices:

• The conjugate function computes the conjugate of each complex element of a matrix:

```A := matrix([[1, 2 + 3*I], [1 - I, 2*I]]):
conjugate(A)```

• The int and diff functions compute the derivative and the integral of each element of a matrix:

```A := matrix(2, 2, [x, x^2, x^3, x^4]):
int(A, x), diff(A, x)```

• The expand function expands each element of a matrix:

```A := matrix(2, 2, [x, (x + 1)^2, x*(x - 1), x*(x + 4)]):
expand(A)```

• The map function applies the specified function to all operands of each element of a matrix:

```A := matrix(3, 3, [1, 2, 3], Diagonal):
B := map(A, sin)```

• The float function converts each element of a matrix or numerical subexpressions of each element of a matrix to floating-point numbers:

`float(B)`

• The evalAt function (and its shortcut |) substitutes the specified object by another specified object, and then evaluates each element of a matrix:

```A := matrix(2, 2, [x, x^2, x^3, x^4]):
A|x = 2```

• The subs function returns a copy of a matrix in which the specified object replaces all instances of another specified object. The function does not evaluate the elements of a matrix after substitution:

```A := matrix(2, 2, [x, x^2, x^3, x^4]):
subs(A, x = exp(y))```

• The has function determines whether a matrix contains the specified object:

```A := matrix(2, 2, [x, x^2, x^3, x^4]):
has(A, x^3), has(A, x^5)```

• The iszero function checks whether all elements of a matrix are zeros:

```A := matrix(2, 2):
iszero(A)```

```A[1, 1] := 1:
iszero(A)```

• The norm function computes the infinity norm (row sum norm) of a matrix:

```A := matrix(2, 2, [a_1_1, a_1_2, a_2_1, a_2_2]):
norm(A)```

• The zip(A, B, f) function combines matrices A and B into a matrix C so that Cij = f(Aij, Bij):

```A := matrix(2, 2, [a, b, c, d]):
B := matrix(2, 2, [10, 20, 30, 40]):
zip(A, B, _power)```