VECTORS
MATLAB is based on matrix and vector algebra. So, even scalars are treated as 1×1 matrices.
We have two ways to define vectors:
- Arbitrary element (not equally spaced elements):
>> v = [1 2 5];
This creates a 1×3 vector with elements 1, 2 and 5. Note that commas could have been used in place of spaces to separate the elements, like this:
>> v = [1, 2, 5];
Keep in mind that we the index of the first element is 1 not 0:
>> v(0)
Subscript indices must either be real positive integers or logicals.
>> v(1)
ans =
1
If we want to add more elements:
>> v(4) = 10;
The yields the vector v=[1,2,5,10].
We can also use previously defined vector:
>> >> w = [11 12];
>> x = [v,w]
Now, x=[1,2,5,10,11,12,]
- Equally spaced elements :
>> t = 0 : .5 : 3
This yields t=[0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000] which is a 1×7 vector. If we give only two numbers, then the increment is set to a default of 1:
>> t = 0:3;
This will creates a 1×4 vector with the elements 0, 1, 2, 3.
One more, adding vectors:
>> u = [1 2 3];
>> v = 4 5 6];
>> w = u + v
w =
5 7 9
COLUMN VECTORS
We can create column vectors. In Matlab, we use semicolon(';') to separate columns:
>> RowVector = [1 2 3] % 1 x 3 matrix
RowVector =
1 2 3
>> ColVector = [1;2;3] % 3 x 1 matrix
ColVector =
1
2
3
>> M = [1 2 3; 4 5 6] % 2 x 3 matrix
M =
1 2 3
4 5 6
MATRICES
Matrices are defined by entering the elements row by row:
>> M = [1 2 3; 4 5 6]
M =
1 2 3
4 5 6
There are a number of special matrices:
null matrix | M = [ ]; |
mxn matrix of zeros | M = zeros(m,n); |
mxn matrix of ones | M = ones(m,n); |
nxn identity matrix | M = eyes(n); |
If we want to assign a new value for a particular element of a matrix (2nd row, 3rd column):
M(2,3) = 99;
ACCESSING MATRIX ELEMENT
We can access an element of a matrix in two ways:
- M(row, column)
- M(n-th_element)
>> M = [10 20 30 40 50; 60 70 80 90 100];
>> M
M =
10 20 30 40 50
60 70 80 90 100
>> M(2,4) % 2nd row 4th column
ans =
90
>> M(8) % 8th element 10, 60, 20, 70, 30, 80, 40, 90...
ans =
90
Also, we can access several elements at once:
>> M(1:2, 3:4) % row 1 2, column 3 4
ans =
30 40
80 90
>> M(5:8) % from 5th to 8th elements
ans =
30 80 40 90
ELEMENT BASED OPERATION USING DOT('.')
If we use dot('.') on an operation, it means do it for all elements. The example does ^3 for all the elements of a matrix:
>> M = [1 2 3; 4 5 6; 7 8 9];
>> M
M =
1 2 3
4 5 6
7 8 9
>> M.^3
ans =
1 8 27
64 125 216
343 512 729
We can get inverse of each element:
>> 1./M
ans =
1.0000 0.5000 0.3333
0.2500 0.2000 0.1667
0.1429 0.1250 0.1111
INVERSE MATRIX
We get inverse of a matrix using inv():
>> M = [1 2; 3 4]
M =
1 2
3 4
>> inv(M)
ans =
-2.0000 1.0000
1.5000 -0.5000
TRANSPOSE MATRIX USING A SINGLE QUOTE(')
We get transpose of a matrix using a single quote("'"):
>> M = [1 2 3; 4 5 6; 7 8 9]
M =
1 2 3
4 5 6
7 8 9
>> M'
ans =
1 4 7
2 5 8
3 6 9
FLIPUD() AND FLIPLR()
flipud(): flip up/down:
>> M = [1 2 3; 4 5 6; 7 8 9]
M =
1 2 3
4 5 6
7 8 9
>> flipud(M)
ans =
7 8 9
4 5 6
1 2 3
fliplr(): flip left/right:
>> M
M =
1 2 3
4 5 6
7 8 9
>> fliplr(M)
ans =
3 2 1
6 5 4
9 8 7
ELEMENT ROTATION
We can do rotate elements, for instance, 90 degree counter-clock wise:
>> M
M =
1 2 3
4 5 6
7 8 9
>> rot90(M)
ans =
3 6 9
2 5 8
1 4 7
RESHAPE()
We can make a change to the number of rows and columns as far as we keep the total number of elements:
>> M = [1 2 3 4; 5 6 7 8; 9 10 11 12]
M =
1 2 3 4
5 6 7 8
9 10 11 12
>> reshape(M, 2, 6) % Convert M to 2x6 matrix
ans =
1 9 6 3 11 8
5 2 10 7 4 12
VECTOR & FUNCTION
Functions are applied element by element:
>> t = 0:100;
>> f = cos(2*pi*t/length(t))
>> plot(t,f)
f=cos(2πt/length(t)) creates a vector f with elements equal to 2πt/length(t) for t=0,1,2,...,100.