1. Two Days workshop
on
MATLAB
(MATrix LABoratory)
[27-28 Sept, 2012]
Presented By:
Bhavesh Shah
Asst. Prof., GF’s GCOE, Jalgaon
2. Outline:
What is MATLAB?
MATLAB Screen
Variables, array, matrix, indexing
Operators (Arithmetic, relational, logical)
Display Facilities
Flow Control
Writing User Defined Functions
Design Neural Network(NN)
Graphical User Interface (GUI)
Image Processing Toolbox
Advantages and Disadvantages of MATLAB
Conclusion
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 2
3. What is MATLAB?
The MATLAB is high-performance language for technical computing integrates
computation, visualization, and programming in an easy-to-use environment where
problems and solutions are expressed in familiar mathematical notation.
Where MATLAB is used
Math and computation
Algorithm development
Data acquisition
Modelling, simulation, and prototyping
Data analysis, exploration, and visualization
Scientific and engineering graphics
Application development, including graphical user interface building
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 3
4. Toolboxes provided By MATLAB
1. Aerospace Simulation
2. Neural Network
3. Parallel Computing
4. Image Acquisition
5. Image processing
6. Genetic Algorithm
7. Fuzzy Logic
8. Database processing
9. Video and Image processing
10. Control System
11. Signal Processing
12. Statistics
13. Financial Toolbox
14. Curve fitting
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 4
5. Toolboxes provided By MATLAB
1. Aerospace Simulation
2. Neural Network
3. Parallel Computing
4. Image Acquisition
5. Image processing
6. Genetic Algorithm
7. Fuzzy Logic
8. Database processing
9. Video and Image processing
10. Control System
11. Signal Processing
12. Statistics
13. Financial Toolbox
14. Curve fitting
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 5
6. MATLAB Screen
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
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 6
7. Structure of MATLAB
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 7
8. Comment used in MATLAB
“%” is the neglect sign for MATLAB (equivalent of
“//” in C). Anything after it on the same line is
neglected by MATLAB compiler.
Sometimes slowing down the execution is done
deliberately for observation purposes. You can
use the command “pause” for this purpose
>>pause %wait until any key
>>pause(3) %wait 3 seconds
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 8
9. Useful Commands
The two commands used most by Matlab
users are
>>help functionname
>>lookfor keyword
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 9
10. Variables
No need for types. i.e.,
int a;
double b;
float c;
All variables are created with double precision unless
specified and they are matrices.
>>x=5;
>>x1=2;
After these statements, the variables are 1x1 matrices
with double precision.
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 10
11. Variables(cont…)
Use meaningful names for variables
MATLAB variable names
– must begin with a letter
– can contain any combination of letters, numbers and
underscore (_)
– must be unique in the first 31 characters
MATLAB is case sensitive: “name”, “Name” and “NAME”
are considered different variables.
Never use a variable with the same name as a MATLAB
command.
Naming convention: use lowercase letters
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 11
12. Variable(cont…)
Initialization using shortcut statements
– colon operator “first:increment:last”
>> x = 1:2:10
x =1 3 5 7 9
>> y = 0:0.1:0.5
y = 0 0.1 0.2 0.3 0.4 0.5
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 12
15. Array, Matrix
a vector x = [1 2 5 1]
x =
1 2 5 1
a matrix x = [1 2 3; 5 1 4; 3 2 -1]
x =
1 2 3
5 1 4
3 2 -1
transpose y = x’ y =
1
2
5
1
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 15
16. Long Array, Matrix
t =1:10
t =
1 2 3 4 5 6 7 8 9 10
k =2:-0.5:-1
k =
2 1.5 1 0.5 0 -0.5 -1
B = [1:4; 5:8]
=
1 2 3 4
5 6 7 8
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 16
17. Built-in Variables
pi: p value up to 15 significant digits
i, j: sqrt(-1)
Inf: infinity (such as division by 0)
NaN: Not-a-Number (such as division of zero by zero).
clock: current date and time as a vector
date: current date as a string (e.g. 16-Feb-2004)
eps: epsilon
ans: default variable for answers
tic…toc
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 17
18. Built-in Math function
abs, sign
log, log10, log2
exp
sqrt
sin, cos, tan
max, min
round, floor, ceil, fix
mod
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 18
19. Built in Functions
sort
sortrows
mod(num,2)
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 19
20. Built in function related to String
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 20
25. Some useful Command
who: show your workspace
whos: show your workspace with details
memory: show memory status
clc: clear command window
clear: clear workspace variable
cntl+d: forcefully quit
diary: to maintain a log
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 25
27. Generating Vectors from functions
zeros(M,N) MxN matrix of zeros x = zeros(1,3)
x =
0 0 0
ones(M,N) MxN matrix of ones
x = ones(1,3)
x =
1 1 1
rand(M,N) MxN matrix of uniformly
distributed random x = rand(1,3)
numbers on (0,1) x =
0.9501 0.2311 0.6068
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 27
28. Matrix Index
The matrix indices begin from 1 (not 0 (as in C))
The matrix indices must be positive integer
Given:
A(-2), A(0)
Error: ??? Subscript indices must either be real positive integers or logicals.
A(4,2)
Error: ??? Index exceeds matrix dimensions.
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 28
29. Concatenation of Matrices
x = [1 2], y = [4 5], z=[ 0 0]
A = [ x y]
1 2 4 5
B = [x ; y]
1 2
4 5
C = [x y ;z]
Error:
??? Error using ==> vertcat CAT arguments dimensions are not consistent.
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 29
39. Import/Export Data from Command
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 39
40. Operators (relational, logical)
== Equal to
~= Not equal to
< Strictly smaller
> Strictly greater
<= Smaller than or equal to
>= Greater than equal to
& And operator
| Or operator
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 40
41. Flow Control
if
for
while
break
continue
switch and case
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 41
42. Control Structures
Some Dummy Examples
If Statement Syntax
if ((a>3) & (b==5))
Some Matlab Commands;
if (Condition_1) end
MATLAB Commands
if (a<3)
elseif (Condition_2) Some Matlab Commands;
MATLAB Commands elseif (b~=5)
elseif (Condition_3) Some Matlab Commands;
end
MATLAB Commands
else if (a<3)
Some Matlab Commands;
MATLAB Commands else
end Some Matlab Commands;
end
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 42
43. Control Structures
Some Dummy Examples
For loop syntax for i=1:100
for i=start: Last index Some Matlab Commands;
end
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
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 43
44. Control Structures
Dummy Example
While Loop Syntax while ((a>3) & (b==5))
Some Matlab Commands;
end
while (condition) % while loop
i=1;
MATLAB Commands while(i<10)
disp(i);
end i=i+1;
end
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 44
45. Use of M-File
Click to create
a new M-File
• Extension “.m”
• A text file containing script or function or program to run
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 45
46. Switch and case
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 46
49. Use of M-File Save file as Denem430.m
If you include “;” at the
end of each statement,
result will not be shown
immediately
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 49
51. Writing User Defined Functions
Functions are m-files which can be executed by
specifying some inputs and supply some desired
outputs.
The code telling the MATLAB that an m-file is actually
a function is
function out1=functionname(inp1)
function out1=functionname(inp1,inp2,inp3)
function [out1,out2]=functionname(inp1,inp2)
You should write this command at the beginning of the
m-file and you should save the m-file with a file name
same as the function name
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 51
52. How to read a text file
fid = fopen('message.txt','r');
ice1= fread(fid);
s = char(ice1');
fclose(fid);
disp(s);
Ans hello
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 52
53. How to write a text file
txt=[65 67 68 69];
fid = fopen('output.txt','wb');
fwrite(fid,char(txt),'char');
fclose(fid);
ANS =ACDE
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 53
54. Writing User Defined Functions
Examples
Write a function : out=squarer (A, ind)
Which takes the square of the input matrix if the input
indicator is equal to 1
And takes the element by element square of the input
matrix if the input indicator is equal to 2
Same Name
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 54
55. Basic Task: Plot the function sin(x)
between 0≤x≤4π
Create an x-array of 100 samples between 0
and 4π.
Syntax: linspace(start, interval, end);
>>x=linspace(0,4*pi,100);
Calculate sin(.) of the x-array
>>y=sin(x);
Plot the y-array
>>plot(y)
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 55
56. Plot the function e-x/3sin(x) between
0≤x≤4π
Create an x-array of 100 samples between 0
and 4π.
>>x=linspace(0,4*pi,100);
Calculate sin(.) of the x-array
>>y=sin(x);
Calculate e-x/3 of the x-array
>>y1=exp(-x/3);
Multiply the arrays y and y1
>>y2=y*y1;
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 56
57. Plot the function e-x/3sin(x) between
0≤x≤4π
Multiply the arrays y and y1 correctly
>>y2=y.*y1;
Plot the y2-array
0.7
>>plot(y2) 0.6
0.5
0.4
0.3
0.2
0.1
0
-0.1
-0.2
-0.3
0 10 20 30 40 50 60 70 80 90 100
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 57
60. How to Design Neural Network
1. Collect data
2. Create the network
3. Configure the network
4. Initialize the weights and biases
5. Train the network
6. Validate the network
7. Use the network
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 60
61. Simple Neuron/1 st layer Perceptron
b
X1 wb=1
w1
E
y
w2
X2
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 61
62. Transfer Function
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 62
63. Vectors used in NN
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 63
70. Display Facilities
title(.)
>>title(‘This is the sinus function’)
This is the sinus function
1
0.8
xlabel(.) 0.6
0.4
>>xlabel(‘x (secs)’) 0.2
sin(x)
0
ylabel(.) -0.2
-0.4
-0.6
-0.8
>>ylabel(‘sin(x)’) -1
0 10 20 30 40 50 60 70 80 90 100
x (secs)
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 70
71. GUI
(Graphical User Interface)
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 71
72. GUIDE
GUIDE is Graphical User Interface Development Environment, provides a
set of tools for creating graphical user interfaces (GUIs). These tools
simplify the process of laying out and programming GUIs.
To open GUI :
>> guide
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 72
98. RIGHT CLICK AXES & GO FOR
PROPERTY INSPECTOR
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 98
99. CHANGE THE STRING AND TAG
VALUE
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 99
100. WRITE THE CODE BELOW THE
CALLBACK
a =imread('cameraman.tif');
axes(handles.one);
imshow(a);
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 100
101. RUN THE PROGRAM
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 101
104. RIGHT CLICK TOGGLE & GO FOR
PROPERTY INSPECTOR
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 104
105. CHANGE THE STRING AND TAG
VALUE
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 105
106. RIGHT CLICK TOGGLE & GO FOR M
FILE EDITOR
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 106
107. WRITE THE CODE BELOW THE
CALLBACK
a=get(hObject,'Value');
if a ==1
a =imread('cameraman.tif');
axes(handles.one);
imshow(a);
else
a =imread('greens.jpg');
axes(handles.one);
imshow(a);
end
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 107
108. RUN THE PROGRAM
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 108
109. RIGHT CLICK CHECK BOX & GO FOR
PROPERTY INSPECTOR
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 109
110. CHANGE THE STRING AND TAG
VALUE
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 110
111. RIGHT CLICK CHECK BOX & GO FOR M
FILE EDITOR
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 111
112. WRITE THE CODE BELOW THE
CALLBACK
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 112
113. RUN THE PROGRAM
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 113
115. How to read an image
a =imread('cameraman.tif'); a =imread('flowers.tif');
imshow(a); imshow(a);
pixval on; pixval on;
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 115
116. NOISE AND FILTER
I = imread('eight.tif');
J = imnoise(I,'salt & pepper',0.02);
K = medfilt2(J);
subplot(1,2,1);imshow(J)
subplot(1,2,2);imshow(K)
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 116
117. How to read an audio file
a =wavread('test.wav');
wavplay(a,44100);
Plot(a);
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 117
118. How to read an video file
a=aviread('movie.avi');
movie(a);
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 118
119. Add two images
I = imread('rice.tif');
I = imread('rice.tif');
J = imread('cameraman.tif');
K = imadd(I,J,'uint16');
J = imadd(I,Irice50);
imshow(K,[])
subplot(1,2,1), imshow(I)
subplot(1,2,2), imshow(J)
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 119
120. Subtract two images
I = imread('rice.tif');
Iq = imsubtract(I,Irice50);
subplot(1,2,1), imshow(I)
subplot(1,2,2), imshow(Iq)
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 120
121. Convert image to gray and binary
clc;
clear;
close all
a= imread('flowers.tif');
subplot(2,2,1);
imshow(a);
subplot(2,2,2);
b=imresize(a,[256 256]);
imshow(b);
subplot(2,2,3);
c=rgb2gray(b);
imshow(c);
subplot(2,2,4);
d=im2bw(c);
imshow(d);
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 121
123. Convert Image into One dimensional
a = imread('cameraman.tif');
[r c]=size(a);
Len=r*c;
b=reshape(a,[1 Len]);
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 123
124. Counting the Number of Objects in an
Image
clc;
clear;
close all;
InputImage=imread('eight.tif');
subplot(2,2,1);
imshow(InputImage);title('InputImage');
BinaryImage=im2bw(InputImage);
subplot(2,2,2);
imshow(BinaryImage);
ComplementImage=imcomplement(BinaryImage);
subplot(2,2,3);
imshow(ComplementImage);
HolesClearedImage = imfill(ComplementImage,'holes');
subplot(2,2,4);
imshow(HolesClearedImage);title('HolesClearedImage');
[L,Num] = bwlabel(HolesClearedImage)
for i=1:3
figure;
imshow(L==i);
pause(2)
end
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 124
125. Advantages and Disadvantages of MATLAB
Advantages
Ease of use
Platform independence
Predefined functions
Plotting
Disadvantages
Can be slow
Expensive
MATLAB workshop under CSI Student
27-28 Sept,2012 Chapter 125