Documents
Resources
Learning Center
Upload
Plans & pricing Sign in
Sign Out

Introduction+to+MATLAB

VIEWS: 261 PAGES: 73

									Introduction to MATLAB
          1
                         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 ??

								
To top