An Introduction To Matlab: Kocaeli University Assist. Prof. Dr. Osman Büyük Digital Signal Processing Applications
An Introduction To Matlab: Kocaeli University Assist. Prof. Dr. Osman Büyük Digital Signal Processing Applications
Kocaeli University
Assist. Prof. Dr. Osman Byk
Digital Signal Processing Applications
What is Matlab?
What is Matlab?
Overview
Matlab
Series of
Matlab
commands
m-files
functions
Input
Output
capability
Command
Line
Command execution
like DOS command
window
mat-files
Data
storage/
loading
Features
Command Window
type commands
Current Directory
View folders and m-files
Workspace
View program variables
Double click on a variable
to see it in the Array Editor
Command History
view past commands
save a whole session
using diary
Variables
Array, Matrix
A vector
x = [1 2 5 1]
x =
1
Transpose
y = x
y =
1
2
5
1
2
1
2
3
4
-1
t =
k =2:-0.5:-1
k =
1.5
0.5
= [1:4; 5:8]
x =
1
5
2
6
3
7
4
8
-0.5
-1
10
ones(M,N)
MxN matrix of 1s
rand(M,N)
x = zeros(1,3)
x =
0
0
0
x = ones(1,3)
x =
1
1
1
x = rand(1,3)
x =
0.9501 0.2311 0.6068
Matrix Index
Given:
A(-2), A(0)
Error: ??? Subscript indices must either be real positive integers or logicals.
A(4,2)
Error: ??? Index exceeds matrix dimensions.
Exercise
Concatenation of Matrices
B = [x ; y]
1 2
4 5
C = [x y ;z]
Error:
??? Error using ==> vertcat CAT arguments dimensions are not consistent.
Operators (arithmetic)
+
*
/
^
addition
subtraction
multiplication
division
power
complex conjugate transpose
Matrices Operations
Given A and B:
Addition
Subtraction
Product
Transpose
.* element-by-element multiplication
./ element-by-element division
.^ element-by-element power
x = A(1,:)
x=
c=x./y
d = x .^2
b=
c=
0.33 0.5 -3
d=
y = A(3 ,:)
y=
1 2 3
b = x .* y
3 8 -3
3 4 -1
K= x^2
Erorr:
??? Error using ==> mpower Matrix must be square.
B=x*y
Erorr:
??? Error using ==> mtimes Inner matrix dimensions must agree.
Exercise
Sum of x and y
Product of x and y
Element by element product of x and y
Element by element division of z over t
Element by element division of z over t, but for
the first two elements only
>>y=sin(x);
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
>>plot(y)
-0.8
-1
10
20
30
40
50
60
70
80
90
100
>>plot(y2)
0.6
0.5
0.4
0.3
0.2
0.1
0
-0.1
-0.2
-0.3
10
20
30
40
50
60
70
80
90
100
Display Facilities
0.7
0.6
plot(.)
0.5
x=linspace(0,4*pi,100);
y=sin(x);
y1=exp(-x/3);
y2=y.*y1;
plot(x,y2)
0.4
0.3
0.2
0.1
0
-0.1
-0.2
stem(.)
-0.3
stem(y2)
stem(x,y2)
10
20
30
40
50
60
70
80
90
100
0.7
0.6
0.5
subplot(.)
subplot(3,1,1)
plot(x,y);
subplot(3,1,2)
plot(x,y1)
subplot(3,1,3)
plot(x,y2)
0.4
0.3
0.2
0.1
0
-0.1
-0.2
-0.3
10
20
30
40
50
60
70
80
90
100
Display Facilities
title(.)
This is the sinus function
1
0.8
xlabel(.)
0.6
0.4
>>xlabel(x (secs))
sin(x)
0.2
ylabel(.)
0
-0.2
-0.4
-0.6
>>ylabel(sin(x))
legend(.)
>>legend(Sinus function)
-0.8
-1
10
20
30
40
50
60
x (secs)
70
80
90
100
Exercise
t=0:0.1:4*pi;
x=sin(t);
y=cos(t);
plot(t,x,'r+-',t,y,'bo-.');
figure;
plot(t,x,'r+-');
hold on;
plot(t,y,'bo-.)
legend('sin','cos');
hold off;
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
10
12
14
== Equal to
~= Not equal to
< Strictly smaller
> Strictly greater
<= Smaller than or equal to
>= Greater than equal to
& And operator
| Or operator
Flow Control
if
for
while
break
continue
return
.
Control Structures
If Statement Syntax
if (Condition_1)
Matlab Commands
elseif (Condition_2)
Matlab Commands
elseif (Condition_3)
Matlab Commands
else
Matlab Commands
end
Control Structures
Some Dummy Examples
for i=Index_Array
Matlab Commands
end
for i=1:100
Some Matlab Commands;
end
for j=1:3:200
Some Matlab Commands;
end
for m=13:-0.2:-21
Some Matlab Commands;
end
for k=[0.1 0.3 -13 12 7 -9.3]
Some Matlab Commands;
end
Control Structures
while (condition)
Matlab Commands
end
Dummy Example
while ((a>3) & (b==5))
Some Matlab Commands;
end
Exercise
Write a for program to compute 0.5+1+1.5+2++50
1.
2.
3.
4.
a=[0.5:0.5:50];
x=sum(a)
a=[0.5:0.5:50];
b=ones(length(a),1);
x=a*b
Use of M-File
Click to create
a new M-File
Extension .m
A text file containing script or function or program to run
Use of M-File
Example
Write a function : out=squarer (A, ind)
Takes the square of the input matrix, A, if the input
indicator, ind, is equal to 1
Takes the element by element square of A if ind is equal
to 2
Same Name
Useful Commands
It is equivalent to \\ in C
Usefull commands
Useful Commands
>>lookfor keyword
Exercise
With loops
Without loops
Questions?
Thank you!