Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
23 views

MATLAB1

The document discusses an introduction to MATLAB presentation. It covers topics like what MATLAB is, basic matrix operations, script files and M-files, and some applications of MATLAB like plotting, image processing, robotics, and GUI design. The presentation also demonstrates how to perform operations in MATLAB, read data from files, and use M-files.

Uploaded by

Sahil
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

MATLAB1

The document discusses an introduction to MATLAB presentation. It covers topics like what MATLAB is, basic matrix operations, script files and M-files, and some applications of MATLAB like plotting, image processing, robotics, and GUI design. The presentation also demonstrates how to perform operations in MATLAB, read data from files, and use M-files.

Uploaded by

Sahil
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

Introduction to MATLAB

Presented by
Sahil Mahto

Topics..
2

 What is MATLAB ??
 Basic Matrix Operations
 Script Files and M-files
 Some more Operations and Functions

APPLICATIONS:
 Plotting functions ..
 Image Processing Basics ..
 Robotics Applications ..
 GUI Design and Programming
Topics..
3

 What is MATLAB ??
 Basic Matrix Operations
 Script Files and M-files
 Some more Operations and Functions

APPLICATIONS:
 Plotting functions ..
 Image Processing Basics ..
 Robotics Applications ..
 GUI Design and Programming

MATLAB
4

 MATLAB is a program for doing numerical


computation. It was originally designed for solving
linear algebra type problems using matrices. It’s
name is derived from MATrix LABoratory.

MATLAB has since been expanded and now has


built-in functions for solving problems requiring data
analysis, signal processing, optimization, and several
other types of scientific computations. It also
contains functions for 2-D and 3-D graphics and
animation.
MATLAB
5

Everything in MATLAB is a matrix !

MATLAB
6

 The MATLAB environment is command oriented


somewhat like UNIX. A prompt appears on the screen and
a MATLAB statement can be entered. When the <ENTER>
key is pressed, the statement is executed, and another
prompt appears.

 If a statement is terminated with a semicolon ( ; ), no


results will be displayed. Otherwise results will appear
before the next prompt.
The MATLAB User Interface
7

MATLAB
8

To get started, type one of these commands: helpwin,


helpdesk, or demo

» a=5;
» b=a/2

b=

2.5000

»
MATLAB Variable Names
9

 Variable names ARE case sensitive

 Variable names can contain up to 63 characters (as of


MATLAB 6.5 and newer)

 Variable names must start with a letter followed by letters,


digits, and underscores.

MATLAB Special Variables


10

ans Default variable name for results


pi Value of 
eps Smallest incremental number
inf Infinity
NaN Not a number e.g. 0/0
i and j i = j = square root of -1
realmin The smallest usable positive real number
realmax The largest usable positive real number
Topics..
11

 What is MATLAB ??
 Basic Matrix Operations
 Script Files and M-files
 Some more Operations and Functions

APPLICATIONS:
 Plotting functions ..
 Image Processing Basics ..
 Robotics Applications ..
 GUI Design and Programming

Math & Assignment Operators


12

Power ^ or .^ a^b or a.^b


Multiplication * or .* a*b or a.*b
Division / or ./ a/b or a./b
or \ or .\ b\a or b.\a
NOTE: 56/8 = 8\56

- (unary) + (unary)
Addition + a+b
Subtraction - a-b
Assignment = a=b (assign b to a)
Other MATLAB symbols
13

>> prompt
... continue statement on next line
, separate statements and data
% start comment which ends at end of line
; (1) suppress output
(2) used as a row separator in a matrix
: specify range

MATLAB Relational Operators


14

 MATLAB supports six relational operators.

Less Than <


Less Than or Equal <=
Greater Than >
Greater Than or Equal >=
Equal To ==
Not Equal To ~=
MATLAB Logical Operators
15

 MATLAB supports three logical operators.

not ~ % highest precedence


and & % equal precedence with or
or | % equal precedence with and

MATLAB Matrices
16

 MATLAB treats all variables as matrices. For our purposes


a matrix can be thought of as an array, in fact, that is how
it is stored.

 Vectors are special forms of matrices and contain only one


row OR one column.

 Scalars are matrices with only one row AND one column
MATLAB Matrices
17

 A matrix with only one row AND one column is a scalar. A


scalar can be created in MATLAB as follows:

» a_value=23

a_value =

23

MATLAB Matrices
18

 A matrix with only one row is called a row vector. A row


vector can be created in MATLAB as follows (note the
commas):

» rowvec = [12 , 14 , 63]

rowvec =

12 14 63
MATLAB Matrices
19

 A matrix with only one column is called a column vector.


A column vector can be created in MATLAB as follows
(note the semicolons):

» colvec = [13 ; 45 ; -2]

colvec =

13
45
-2

MATLAB Matrices
20

 A matrix can be created in MATLAB as follows (note the


commas AND semicolons):

» matrix = [1 , 2 , 3 ; 4 , 5 ,6 ; 7 , 8 , 9]

matrix =

1 2 3
4 5 6
7 8 9
Extracting a Sub-Matrix
21

 A portion of a matrix can be extracted and stored in a


smaller matrix by specifying the names of both matrices
and the rows and columns to extract. The syntax is:

sub_matrix = matrix ( r1 : r2 , c1 : c2 ) ;

where r1 and r2 specify the beginning and ending rows


and c1 and c2 specify the beginning and ending columns
to be extracted to make the new matrix.

MATLAB Matrices
22

 A column vector can be  Here we extract column 2


extracted from a matrix. of the matrix and make a
As an example we create a column vector:
matrix below:

» matrix=[1,2,3;4,5,6;7,8,9] » col_two=matrix( : , 2)

matrix = col_two =
1 2 3
4 5 6 2
7 8 9 5
8
MATLAB Matrices
23

 A row vector can be  Here we extract row 2 of


extracted from a matrix. the matrix and make a
As an example we create row vector. Note that
a matrix below: the 2:2 specifies the
second row and the 1:3
» matrix=[1,2,3;4,5,6;7,8,9] specifies which columns
of the row.

matrix =
» rowvec=matrix(2 : 2 , 1 :
3)
1 2 3
4 5 6 rowvec =
7 8 9
4 5 6

Topics..
24

 What is MATLAB ??
 Basic Matrix Operations
 Script Files and M-files
 Some more Operations and Functions

APPLICATIONS:
 Plotting functions ..
 Image Processing Basics ..
 Robotics Applications ..
 GUI Design and Programming
Use of M-File
25

 There are two kinds of M-files:


Scripts, which do not accept input
arguments or return output arguments. They
operate on data in the workspace.
Functions, which can accept input
arguments and return output arguments.
Internal variables are local to the function.

Click to create
a new M-File

M-File as script file


26

Save file as filename.m

Type what you want to


do, eg. Create matrices

If you include “;” at the


end of each statement,
result will not be shown
immediately

Run the file by typing the filename in the command window


Reading Data from files
27

 MATLAB supports reading an entire file and creating a


matrix of the data with one statement.
>> load mydata.dat; % loads file into matrix.
% The matrix may be a scalar, a vector, or a
% matrix with multiple rows and columns. The
% matrix will be named mydata.
>> size (mydata) % size will return the number
% of rows and number of
% columns in the matrix
>> length (myvector) % length will return the total
% no. of elements in
myvector

Topics..
28

 What is MATLAB ??
 Basic Matrix Operations
 Script Files and M-files
 Some more Operations and Functions

APPLICATIONS:
 Plotting functions ..
 Image Processing Basics ..
 Robotics Applications ..
 GUI Design and Programming
Some Useful MATLAB commands
29

 who List known variables


 whos List known variables plus their size
 help >> help sqrt Help on using sqrt
 lookfor >> lookfor sqrt Search for
keyword sqrt in m-files
 what >> what a: List MATLAB files in a:
 clear Clear all variables from work space
 clear x y Clear variables x and y from work space
 clc Clear the command window

Some Useful MATLAB commands


30

 what List all m-files in current directory


 dir List all files in current directory
 ls Same as dir
 type test Display test.m in command window
 delete test Delete test.m
 cd a: Change directory to a:
 chdir a: Same as cd
 pwd Show current directory
 which test Display directory path to ‘closest’
test.m
MATLAB Logical Functions
31

 MATLAB also supports some logical functions.


xor (exclusive or) Ex: xor (a, b)
Where a and b are logical expressions. The xor
operator evaluates to true if and only if one
expression is true and the other is false. True is
returned as 1, false as 0.
any (x) returns 1 if any element of x is nonzero
all (x) returns 1 if all elements of x are nonzero
isnan (x) returns 1 at each NaN in x
isinf (x) returns 1 at each infinity in x
finite (x) returns 1 at each finite value in x

Matlab Selection Structures


32

 An if - elseif - else structure in MATLAB.


Note that elseif is one word.

if expression1 % is true
% execute these commands
elseif expression2 % is true
% execute these commands
else % the default
% execute these commands
end
MATLAB Repetition Structures
33

A for loop in MATLAB for x = array


for ind = 1:100
b(ind)=sin(ind/10)
end
while loop in MATLAB while expression
while x <= 10
% execute these commands
end

x=0.1:0.1:10; b=sin(x); - Most of the loops can be


avoided!!!

Scalar - Matrix Addition


34

» a=3;
» b=[1, 2, 3;4, 5, 6]
b=
1 2 3
4 5 6
» c= b+a % Add a to each element of b
c=
4 5 6
7 8 9
Scalar - Matrix Subtraction
35

» a=3;
» b=[1, 2, 3;4, 5, 6]
b=
1 2 3
4 5 6
» c = b - a %Subtract a from each element of b
c=
-2 -1 0
1 2 3

Scalar - Matrix Multiplication


36

» a=3;
» b=[1, 2, 3; 4, 5, 6]
b=
1 2 3
4 5 6
» c = a * b % Multiply each element of b by a
c=
3 6 9
12 15 18
Scalar - Matrix Division
37

» a=3;
» b=[1, 2, 3; 4, 5, 6]
b=
1 2 3
4 5 6
» c = b / a % Divide each element of b by a
c=
0.3333 0.6667 1.0000
1.3333 1.6667 2.0000

The use of “.” – “Element” Operation


38

Given A:

Divide each element of Multiply each Square each


A by 2 element of A by 3 element of A
MATLAB Toolboxes
39

 MATLAB has a number of add-on software modules, called


toolbox , that perform more specialized computations.

 Signal Processing
 Image Processing
 Communications
 System Identification
 Wavelet Filter Design
 Control System
 Fuzzy Logic
 Robust Control
 µ-Analysis and Synthesis
 LMI Control
 Model Predictive Control
 …

MATLAB Demo
40

 Demonstrations are invaluable since they give an indication


of the MATLAB capabilities.

 A comprehensive set are available by typing the command


>>demo in MATLAB prompt.
An Interesting, MATLAB command
41

why

In case you ever needed a reason

Topics..
42

 What is MATLAB ??
 Basic Matrix Operations
 Script Files and M-files
 Some more Operations and Functions

APPLICATIONS:
 Plotting functions ..
 Image Processing Basics ..
 Robotics Applications ..
 GUI Design and Programming
Plot

Example
PLOT Linear plot.
x = [-3 -2 -1 0 1 2 3];
 PLOT(X,Y) plots vector Y y1 = (x.^2) -1;
versus vector X
plot(x, y1,'bo-.');
 PLOT(Y) plots the columns of
Y versus their index
 PLOT(X,Y,S) with plot
symbols and colors
 See also SEMILOGX,
SEMILOGY, TITLE,
XLABEL, YLABEL, AXIS,
AXES, HOLD, COLORDEF,
LEGEND, SUBPLOT...

43

Plot Properties
Example

XLABEL X-axis label. ...


xlabel('x values');
 XLABEL('text') adds text ylabel('y values');
beside the X-axis on the
current axis.

YLABEL Y-axis label.


 YLABEL('text') adds text
beside the Y-axis on the
current axis.

44
Hold

Example
HOLD Hold current graph. ...
hold on;
 HOLD ON holds the current
y2 = x + 2;
plot and all axis properties so
plot(x, y2, 'g+:');
that subsequent graphing
commands add to the existing
graph.
 HOLD OFF returns to the
default mode
 HOLD, by itself, toggles the
hold state.

45

Subplot

SUBPLOT Create axes in tiled


positions.
 SUBPLOT(m,n,p), or
SUBPLOT(mnp), breaks the Figure
window into an m-by-n matrix of
small axes
Example
x = [-3 -2 -1 0 1 2 3];
y1 = (x.^2) -1;
% Plot y1 on the top
subplot(2,1,1);
plot(x, y1,'bo-.');
xlabel('x values');
ylabel('y values');
% Plot y2 on the bottom
subplot(2,1,2);
y2 = x + 2;
plot(x, y2, 'g+:');

46
Figure

FIGURE Create figure window.


 FIGURE, by itself, creates a
new figure window, and
returns its handle.

Example
x = [-3 -2 -1 0 1 2 3];
y1 = (x.^2) -1;
% Plot y1 in the 1st Figure
plot(x, y1,'bo-.');
xlabel('x values');
ylabel('y values');
% Plot y2 in the 2nd Figure
figure
y2 = x + 2;
plot(x, y2, 'g+:');
47

Surface Plot

x = 0:0.1:2;
y = 0:0.1:2;
[xx, yy] = meshgrid(x,y);
zz=sin(xx.^2+yy.^2);
surf(xx,yy,zz)
xlabel('X axes')
ylabel('Y axes')

48
3 D Surface Plot

contourf-colorbar-plot3-waterfall-contour3-mesh-surf

49

Convolution
50

The behavior of a linear, continuous-time, time-invariant system with


input signal x(t) and output signal y(t) is described by the convolution
integral
- h(t), assumed known, the response of the system to a unit impulse
input
For example,
x = [1 1 1 1 1];  [1 1 1 1 1]
h = [0 1 2 3];  [3 2 1 0]
conv(x,h)

yields y = [0 1 3 6 6 6 5 3]
stem(y);

ylabel(‘Conv');
xlabel(‘sample number’);
Topics..
51

 What is MATLAB ??
 Basic Matrix Operations
 Script Files and M-files
 Some more Operations and Functions

APPLICATIONS:
 Plotting functions ..
 Image Processing Basics ..
 Robotics Applications ..
 GUI Design and Programming

Image Processing Toolbox


52

 The Image Processing Toolbox is a collection of functions


that extend the capability of the MATLAB ® numeric
computing environment. The toolbox supports a wide
range of image processing operations, including:
 Geometric operations
 Neighborhood and block operations
 Linear filtering and filter design
 Transforms
 Image analysis and enhancement
 Binary image operations
 Region of interest operations
MATLAB Image Types
53

 Indexed images : m-by-3 color map


 Intensity images : [0,1] or uint8
 Binary images : {0,1}
 RGB images : m-by-n-by-3

Indexed Images

» [x,map] =
imread('trees.tif');
» imshow(x,map);

54
Intensity Images

» image =
ind2gray(x,map);
» imshow(image);

55

Binary Images

» imshow(edge(image));

56
RGB Images

57

Image Display
58

 image - create and display image object


 imagesc - scale and display as image
 imshow - display image
 colorbar - display colorbar
 getimage- get image data from axes
 truesize - adjust display size of image
 zoom - zoom in and zoom out of 2D plot
Image Conversion
59

 Gray2ind - intensity image to index image


 im2bw - image to binary
 Im2double - image to double precision
 Im2uint8 - image to 8-bit unsigned integers
 Im2uint16 - image to 16-bit unsigned integers
 Ind2gray - indexed image to intensity image
 mat2gray - matrix to intensity image
 rgb2gray - RGB image to grayscale
 rgb2ind - RGB image to indexed image

GEOMETRIC OPERATIONS
60

“imcrop” crops an image to a specified rectangle.


imcrop displays the input image and waits for you to
specify the crop rectangle with the mouse.
IMAGE ENHANCEMENT
61

 Adjust intensity
>>im2 = histeq(im);
 imadjust >>imshow(im2)
 histeq

 Noise removal
 linear filtering

 median filtering

 adaptive filtering

TRANSFORMS
62

Fourier Transform
-fft2, fftshift, ifft2

Discrete Cosine Transform (DCT)


-dct2, idct2, dctmtx, dctdemo

Radon Transform
-radon, iradon, phantom
Topics..
63

 What is MATLAB ??
 Basic Matrix Operations
 Script Files and M-files
 Some more Operations and Functions

APPLICATIONS:
 Plotting functions ..
 Image Processing Basics ..
 Robotics Applications ..
 GUI Design and Programming

Robotics Application
64

Lez Concorrenza - The Automation-Robotics Event, Techniche 2005


Robotics Application
65

Concept
 take image
 filter using medfilt2
 take the subarray of ball region, find cluster of max
area ,find its centroid
 take the subarray of robot region , find cluster of max
area, find its centroid
 interpolate the ball using the ball's current and
previous coordinate , give output

Robotics Application
66

MATLAB Code

parport=digitalio('parallel','LPT1');
addline(parport,0:7,'out');
ball_x_prev = 1;
ball_y_prev = 1;

while (1)
% code for acquiring image

filtered_image=medfilt2(bw,[3 3]); % filter the image


region_ball = filtered_image[20:460,10:575]; % ball region
region_bot = filtered_image[20:460,575:630]; % robot region

label = bwlabel(region_ball,4); %label the clusters in the region


data = regionprops(label,'basic'); % data ontains properties of clusters in the region
object = find([data.Area]==max([data.Area])) % object conatains the label of the cluster with max
area
Robotics Application
67

ball_x = data(object).Centroid(1); %x coordinates of the ball


ball_y = data(object).Centroid(2);

label = bwlabel(region_bot,4); %label the clusters in the region


data = regionprops(label,'basic'); % data ontains properties of clusters in the region
object =find([data.Area]==max([data.Area])) % object conatains the label of the cluster with max
area

robot_x = data(object).Centroid(1); %x coordinates of the bot


robot_y = data(object).Centroid(2);

% Algorithm for movement of robot


if (ball_x > ball_x_prev) % the ball is returning to the bot
% Do something
if (robot_y > y_proj)
% Do something else
Etc.

Topics..
68

 What is MATLAB ??
 Basic Matrix Operations
 Script Files and M-files
 Some more Operations and Functions

APPLICATIONS:
 Plotting functions ..
 Image Processing Basics ..
 Robotics Applications ..
 GUI Design and Programming
Graphical User Interface
69

What is GUI: A graphical user interface (GUI) is a


user interface built with graphical objects such as
 Buttons
 Text fields
 Sliders
 Menus

If the GUI is designed well-designed, it should be


intuitively obvious to the user how its components
function.

Axes static text


70 Frames

Checkbox Slider

Edit text

Radio Buttons Push Buttons


Graphical User Interface
71

Guide Editor

Result Figure Property Inspector

GUI: Spectrum Analyzer


72
Thanks
73

Questions ??

You might also like