Introduction to Matlab




                 By: İ.Yücel
    Özbek
Outline:
   What is Matlab?
   Matlab Screen
   Variables, array, matrix, indexing
   Operators (Arithmetic, relational, logical )
   Display Facilities
   Flow Control
   Using of M-File
   Writing User Defined Functions
   Conclusion
What is Matlab?
   Matlab is basically a high level language
    which has many specialized toolboxes for
    making things easier for us
   How high?
                      Matlab

                       High Level
                   Languages such as
                     C, Pascal etc.




                    Assembly
What are we interested in?
     Matlab is too broad for our purposes in this
      course.
     The features we are going to require is
                                 Matlab
  Series of
   Matlab
 commands
                                  Command
                   m-files                        mat-files
                                    Line


                  functions   Command execution          Data
       Input                  like DOS command         storage/
      Output                        window             loading
     capability
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
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.
         Example:
         >>x=5;
         >>x1=2;

   After these statements, the variables are 1x1 matrices
    with double precision
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
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]

    x =
          1      2        3        4
          5      6        7        8
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
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.
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.
Operators (arithmetic)
 +   addition
 -   subtraction
 *   multiplication
 /   division
 ^   power
 ‘   complex conjugate transpose
Matrices Operations


  Given A and B:



 Addition   Subtraction   Product   Transpose
Operators (Element by Element)


 .* element-by-element multiplication
 ./ element-by-element division
 .^ element-by-element power
The use of “.” – “Element” Operation
A = [1 2 3; 5 1 4; 3 2 1]
   A=
         1 2 3
         5 1 4
         3 2 -1

                                    b = x .* y    c=x./y           d = x .^2
x = A(1,:)    y = A(3 ,:)
                                    b=            c=               d=
x=            y=                         3 8 -3     0.33 0.5 -3         1   4   9
     1 2 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.
Basic Task: Plot the function sin(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-array1

                                  0.8

                                  0.6


      >>y=sin(x);                 0.4

                                  0.2

                                    0


    Plot the y-array             -0.2

                                  -0.4

                                  -0.6


      >>plot(y)                   -0.8

                                   -1
                                         0   10   20   30   40   50   60   70   80   90   100
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;
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
Display Facilities                 0.7

                                   0.6

                                   0.5

   plot(.)                        0.4

                                   0.3


       Example:
                                   0.2

                                   0.1

       >>x=linspace(0,4*pi,100);     0

       >>y=sin(x);                 -0.1


       >>plot(y)                   -0.2


       >>plot(x,y)
                                   -0.3
                                          0   10   20   30   40   50   60   70   80   90   100


                                   0.7

   stem(.)                        0.6

                                   0.5

                                   0.4

                                   0.3



       Example:
                                   0.2

                                   0.1

       >>stem(y)                     0

       >>stem(x,y)                 -0.1

                                   -0.2

                                   -0.3
                                          0   10   20   30   40   50   60   70   80   90   100
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)
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
Flow Control

    if
    for
    while
    break
    ….
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)
                                Some Matlab Commands;
 elseif (Condition_3)      end
        Matlab Commands
                           if (a<3)
 else                           Some Matlab Commands;
        Matlab Commands    else
                                Some Matlab Commands;
 end                       end
Control Structures
                      Some Dummy Examples
   For loop syntax   for i=1:100
                          Some Matlab Commands;
                      end

for i=Index_Array     for j=1:3:200
                          Some Matlab Commands;
  Matlab Commands     end

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 Loop Syntax

                        Dummy Example
while (condition)
  Matlab Commands       while ((a>3) & (b==5))
                           Some Matlab Commands;
end                     end
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   Save file as Denem430.m




                           If you include “;” at the
                           end of each statement,
                           result will not be shown
                           immediately
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(in1)
       function out1=functionname(in1,in2,in3)
       function [out1,out2]=functionname(in1,in2)



    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
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
Writing User Defined Functions
   Another function which takes an input array and returns the sum and product
    of its elements as outputs




   The function sumprod(.) can be called from command window or an m-file as
Notes:
   “%” is the neglect sign for Matlab (equaivalent
    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
Useful Commands

    The two commands used most by Matlab
     users are
     >>help functionname



     >>lookfor keyword
Questions

   ?
   ?
   ?
   ?
   ?
Thank You…

Introduction to matlab

  • 1.
    Introduction to Matlab By: İ.Yücel Özbek
  • 2.
    Outline:  What is Matlab?  Matlab Screen  Variables, array, matrix, indexing  Operators (Arithmetic, relational, logical )  Display Facilities  Flow Control  Using of M-File  Writing User Defined Functions  Conclusion
  • 3.
    What is Matlab?  Matlab is basically a high level language which has many specialized toolboxes for making things easier for us  How high? Matlab High Level Languages such as C, Pascal etc. Assembly
  • 4.
    What are weinterested in?  Matlab is too broad for our purposes in this course.  The features we are going to require is Matlab Series of Matlab commands Command m-files mat-files Line functions Command execution Data Input like DOS command storage/ Output window loading capability
  • 5.
    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
  • 6.
    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. Example: >>x=5; >>x1=2;  After these statements, the variables are 1x1 matrices with double precision
  • 7.
    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
  • 8.
    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] x = 1 2 3 4 5 6 7 8
  • 9.
    Generating Vectors fromfunctions  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
  • 10.
    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.
  • 11.
    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.
  • 12.
    Operators (arithmetic) + addition - subtraction * multiplication / division ^ power ‘ complex conjugate transpose
  • 13.
    Matrices Operations Given A and B: Addition Subtraction Product Transpose
  • 14.
    Operators (Element byElement) .* element-by-element multiplication ./ element-by-element division .^ element-by-element power
  • 15.
    The use of“.” – “Element” Operation A = [1 2 3; 5 1 4; 3 2 1] A= 1 2 3 5 1 4 3 2 -1 b = x .* y c=x./y d = x .^2 x = A(1,:) y = A(3 ,:) b= c= d= x= y= 3 8 -3 0.33 0.5 -3 1 4 9 1 2 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.
  • 16.
    Basic Task: Plotthe function sin(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-array1 0.8 0.6 >>y=sin(x); 0.4 0.2 0  Plot the y-array -0.2 -0.4 -0.6 >>plot(y) -0.8 -1 0 10 20 30 40 50 60 70 80 90 100
  • 17.
    Plot the functione-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;
  • 18.
    Plot the functione-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
  • 19.
    Display Facilities 0.7 0.6 0.5  plot(.) 0.4 0.3 Example: 0.2 0.1 >>x=linspace(0,4*pi,100); 0 >>y=sin(x); -0.1 >>plot(y) -0.2 >>plot(x,y) -0.3 0 10 20 30 40 50 60 70 80 90 100 0.7  stem(.) 0.6 0.5 0.4 0.3 Example: 0.2 0.1 >>stem(y) 0 >>stem(x,y) -0.1 -0.2 -0.3 0 10 20 30 40 50 60 70 80 90 100
  • 20.
    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)
  • 21.
    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
  • 22.
    Flow Control  if  for  while  break  ….
  • 23.
    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) Some Matlab Commands; elseif (Condition_3) end Matlab Commands if (a<3) else Some Matlab Commands; Matlab Commands else Some Matlab Commands; end end
  • 24.
    Control Structures Some Dummy Examples  For loop syntax for i=1:100 Some Matlab Commands; end for i=Index_Array for j=1:3:200 Some Matlab Commands; Matlab Commands end 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
  • 25.
    Control Structures  While Loop Syntax Dummy Example while (condition) Matlab Commands while ((a>3) & (b==5)) Some Matlab Commands; end end
  • 26.
    Use of M-File Clickto create a new M-File • Extension “.m” • A text file containing script or function or program to run
  • 27.
    Use of M-File Save file as Denem430.m If you include “;” at the end of each statement, result will not be shown immediately
  • 28.
    Writing User DefinedFunctions  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(in1) function out1=functionname(in1,in2,in3) function [out1,out2]=functionname(in1,in2)  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
  • 29.
    Writing User DefinedFunctions  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
  • 30.
    Writing User DefinedFunctions  Another function which takes an input array and returns the sum and product of its elements as outputs  The function sumprod(.) can be called from command window or an m-file as
  • 31.
    Notes:  “%” is the neglect sign for Matlab (equaivalent 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
  • 32.
    Useful Commands  The two commands used most by Matlab users are >>help functionname >>lookfor keyword
  • 33.
    Questions  ?  ?  ?  ?  ?
  • 34.