# MATLAB Programming/Vector and Matrices/Operations on Matrices

## Basic Matrix Operation

We can add and subtract the matrices if both of them are of same number of rows and columns.

Examples as follows:

  >> a = [7,9,4;6,2,5]
a =
7     9     4
6     2     5

>> b=[2,0,1;4,7,3]
b =
2     0     1
4     7     3

>> % Addition of a and b matrices
a+b
ans =
9     9     5
10     9     8

>> % Subtraction of a and b matrices
a-b
ans =
5     9     3
2    -5     2


### Matrix multiplication

For matrix multiplications, there are 2 ways to do multiplications.

(i) Matrix multiplications (using symbol * or mtimes)

Requirements is that the number of columns in the first matrix must be same as the number of rows in the second matrix.

As examples shown on the right , matrix A have 3 X 2 and matrix B have 2 X3

Therefore , 2 X 3 <-> 3 X 2 , hence, it fulfils the requirements above.

Also, take note that the resulting matrix sizes is based on number of rows of first matrix with number of columns in second matrix.

>> A=[4,2,4;8,3,1]

A =
4     2     4
8     3     1

>> B=[3,5;2,8;7,9]

B =
3     5
2     8
7     9

>> mtimes(A,B)

ans =
44    72
37    73

>> A*B

ans =

44    72
37    73


Following examples shows what if the incorrect matrix dimension matches.

As shown, the matrix C have 5X4 and matrix D have 3X2

5X 4 <-> 3X2, therefore it cannot fulfill the conditions and unable to solve it.

>> %Demonstrations what if matrices dimensions are incorrect
>> C=randi(10,5,4)

C =

2    10    10     3
2    10     4     5
3     5     2     1
5     5     8     2
1     4     4    10

>> D=randi(10,3,2)

D =

10     3
6     4
1     9

>> mtimes(C,D)
Error using  *
Incorrect dimensions for matrix multiplication. Check that the number of columns in the first
matrix matches the number of rows in the second matrix. To perform elementwise
multiplication, use '.*'.


(ii) Dot product (Note: Only can be used if both matrices are same sizes) Taking examples above, it doesn't solve the equations as both matrix A and B above are not same size

>> A.*B % want to show dot product unable to solve this multiplication issues
Matrix dimensions must agree.


## Creating Random Integer Matrix

To generate random integer matrix, can type the following randi(IMAX,M,N)
Note: IMAX is the maximum integer (starting from 1) and M*N matrix

Examples as followed:

>> randi(50,3,4)

ans =
9    14    42    48
36     3    35     2
2     5    16    22


## Transpose

Using the matrices above, we can transpose the matrices. Transpose matrices usually just switch the row to column and columns into rows. The picture shown just demonstrate the transpose operation. One of the application of transpose the matrix is to cryptography.

There are two ways to go about it. One is add ' to the end of the matrix that are going to be transpose or function transpose.

Back to the magic square example above, we are going to transpose it. We can see , it is transpose along the diagonal line looks like this : \

  >> % transpose matrix c to d
>> d = c'
d =
17    23     4    10    11
24     5     6    12    18
1     7    13    19    25
8    14    20    21     2
15    16    22     3     9


## Determinant

The determinant of matrix is a special number that is defined only for square matrices.
A determinant is used to find the solution of a system of linear equations and determine the inverse of a matrix.

Determinant of 2X2 matrix : $\mathbf {A} ={\begin{bmatrix}a&b\\c&d\\\end{bmatrix}}*|A|=ad-bc$

Determinant of 3X3 matrix : $\mathbf {A} ={\begin{bmatrix}a&b&c\\d&e&f\\g&h&i\end{bmatrix}}*|A|=a(ei-fh)-b(di-fg)+c(dh-eg)$

>> A=[6,1,1;4,-2,5;2,8,7]

A =
6     1     1
4    -2     5
2     8     7

>> det(A)
ans =
-306.0000


## Inverse

Inverse of matrix is reciprocal matrix where the formula is denoted by ${A}^{-1}={\frac {1}{|A|}}adjA$

Note: Not all matrix have inverse, if their determinant is equal to zero.

>>%matrix inversion using manual method

>> M=[2,-1,3;-5,3,1;-3,2,3]

M =

2    -1     3
-5     3     1
-3     2     3

>> %First we find the matrix determinant
>> DM = det(M)

DM =
-1.0000

>>%Since determinant IS NOT equal to 0, we can find the matrix inverses

AM =
7.0000    9.0000  -10.0000
12.0000   15.0000  -17.0000
-1.0000   -1.0000    1.0000

>> (1/DM)*AM

ans =
-7.0000   -9.0000   10.0000
-12.0000  -15.0000   17.0000
1.0000    1.0000   -1.0000

%shortcut using function inv which should be same as manual calculation above
>> inv(M)

ans =
-7.0000   -9.0000   10.0000
-12.0000  -15.0000   17.0000
1.0000    1.0000   -1.0000


There are many applications of matrix such as:
Crytography : where it is used to encrypt message codes. Matrices are used by programmers to code or encrypt letters. A message is made up of a series of binary numbers that are solved using coding theory for communication. As a result, the concept of matrices is used to solve such equations.
In physics, the Inverse matrix is used to explore electrical circuits, quantum mechanics, and optics. These matrices are crucial in the measuring of battery power outputs and the conversion of electrical energy into other useable energy by resistors. When applying Kirchhoff’s laws of voltage and current to solve problems, the inverse matrices are extremely significant.