Introduction to Matlab-Matlab-Manual, Slides of Matlab skills

This is matlab manual designed by Dr. Sikander Mirza at Pakistan Institute of Engineering and Applied Sciences, Islamabad (PIEAS). It includes: Introducition, Matlab, Functions, Vectors, MAtrices, Programming, Function, Visualiztion

Typology: Slides

2011/2012

Uploaded on 07/04/2012

razi
razi 🇵🇰

3

(1)

3 documents

1 / 45

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
.
.
.
.
.
.
.
.
.
.
..........
Beginner’s Resource
Introduction to Matlab®
By
Dr. Sikander M. Mirza
Department of Physics and Applied Mathematics
Pakistan Institute of Engineering and Applied Sciences
Nilore, Islamabad 45650, Pakistan
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d

Partial preview of the text

Download Introduction to Matlab-Matlab-Manual and more Slides Matlab skills in PDF only on Docsity!

Beginner’s Resource

Introduction to Matlab

By

Dr. Sikander M. Mirza

Department of Physics and Applied Mathematics

Pakistan Institute of Engineering and Applied Sciences

Nilore, Islamabad 45650, Pakistan

. .. . Introduction to Matlab 2

  • GENERAL FEATURES Ta Tabbllee ooff CCoonntteennttss
    • S TARTUP
    • S IMPLE CALCULATIONS
    • N UMBERS AND S TORAGE
    • V ARIABLE N AMES
    • CASE S ENSITIVITY
  • FUNCTIONS
    • TRIGONOMETRIC F UNCTIONS
    • S OME E LEMENTARY F UNCTIONS
  • VECTORS.....................................................................................................................................................
    • THE ROW V ECTORS
    • THE COLON N OTATION
    • S ECTIONS OF A V ECTOR
    • COLUMN V ECTORS
    • TRANSPOSE
    • D IARY AND S ESSION
    • ELEMENTARY P LOTS AND G RAPHS
    • MULTIPLOTS
    • S UBPLOTS
    • A XES CONTROL
    • S CRIPTS
    • W ORKING WITH V ECTORS AND MATRICES
    • H ADAMARD PRODUCT
    • TABULATION OF F UNCTIONS
  • WORKING WITH MATRICES...............................................................................................................
    • D EFINING MATRICES
    • S IZE OF M ATRICES
    • THE I DENTITY MATRIX
    • TRANSPOSE
    • D IAGONAL MATRIX
    • S PY F UNCTION
    • S ECTIONS OF MATRICES
    • P RODUCT OF MATRICES
  • MATLAB PROGRAMMING
    • F OR -LOOPS
    • LOGICAL EXPRESSIONS
    • W HILE LOOP
    • CONDITIONAL P ROGRAMMING
    • F UNCTION M -S CRIPTS
    • RETURN S TATEMENT
    • RECURSIVE P ROGRAMMING

.. . .. .

Introduction to Matlab

4

Ge Genneerraall FFeeaattuurreess

Matlab is an interactive working environment in which the user can carry out quite complex computational tasks with few commands. It was originally developed in 1970s by Cleve Muller. The initial programming was in Fortran and over period of time, it has constantly evolved. The latest version is in C. As far as numerical programming is concerned, it removes programming of many routine tasks and allows one to concentrate on the task encouraging experimentation. The results of calculations can be view both numerically as well as in the form of 2D as well as 3D graphs easily and quickly. It incorporates state-of-the-art numerical solution tools, so one can be confident about the results. Also, quite complex computations can be performed with just a few commands. This is because of the fact that the details of programming are stored in separate script files called the ‘m’- files and they can be invoked directly with their names. An m-file can invoke another m-file when required. In this way, a series of m-files running behind the scene allow execution of the required task easily. The user can write his/her own m-files. All such scripts are text readable files which can be read, modified and printed easily. This open-architecture of Matlab® allows programmers to write their own area specific set of m-files. Some such sets written by various experts world-wide have already been incorporated into the Matlab as tool boxes. So, with standard installations, you will find latterly dozens of tool boxes. If you wish, you can down-load even more from the internet.

Startup

When you click the Matlab icon, the MS Windows opens up the standard Matlab-window for you which has the following form:

Introduction to Matlab

5

The white area in the middle is the work area in which the user types-in the commands which are interpreted directly over there and the results are displayed on screen. The ‘>>’ is Matlab prompt indicating that user can type- in command here. A previously entered command can be reached with the help of up-arrow and down-arrow buttons on the keyboard.

Simple Calculations

Matlab uses standard arithmetic operators + - / * ^ to indicate addition, subtraction, division, multiplication and raised-to-the-power respectively. For example, in order to calculate the answer for 2+3^4 , one would type the following:

» 2+3^ ans = 83 The first line is the user entered command while the second line is default variable used by Matlab for storing the output of the calculations and the third line shows the result of computation. If you wish to multiply this result with 2, proceed as below:

» ans* ans = 166 As you can see, the result 83 stored in variable ans gets multiplied with 2, and the result of this new computation is again stored in variable ‘ans.’ In this case, its previous value gets over-written by the new variable value. If you wish, you can define your own variables. For example: » pay= pay = 2400 In this case, you define the variable ‘pay’ and assign the variable a value

  1. Matlab echoes the assignment in the second and third line. This confirms the user that a value of 2400 has been assigned to the variable ‘pay’ which is quite useful at times. If you wish to remove this echo in Matlab, use a semicolon at the end of each command. For example: » c=3*10^8; » The variable ‘c’ has been assigned a value 3x10^8 and since there is a semicolon at the end of the command, therefore, no echo is seen in this case.

The arithmetic operators have the following precedence-levels:

  1. Brackets first. In case they are nested, then the sequence is from inner- most to the outermost.

Introduction to Matlab

7

Case Sensitivity

Matlab command structure is quite similar to the C-language. The variables are case sensitive. So, ALPHA and alpha are treated as separate variables. The case sensitivity is also applicable to Matlab commands. As a general rule, the lower-case variable names as well as commands are typically used.

Fu Funnccttiioonnss

Matlab has a potpourri of functions. Some of these are standard functions including trigonometric functions etc., and others are user-defined functions and third party functions. All of these enable user to carry out complex computational tasks easily.

Trigonometric Functions

These include sin, cos and tan functions. Their arguments should be in radians. In case data is in degrees, one should convert it to radians by multiplying it with pi/180. For example, let us calculate the value of sin 2 ( 27 o^ ) + cos^2 ( 27 o ):

» (sin(27pi/180))^2+(cos(27pi/180))^ ans = 1 The result of these computations is no surprise. Note that in each case, the argument of the trigonometric function was converted to radians by multiplying it suitably. The inverse functions are invoked by asin, acos and atan. For example, tan −^1 ( ) 1 is computed as: » atan(1) ans =

Of course, π / 4 = 0. 7854.

Some Elementary Functions

Typically used common functions include sqrt, exp, log and log10. Note that log function gives the natural logarithm. So,

» x=2; sqrt(x), exp(-x), log(x), log10(x) ans =

ans =

.. . .. .

Introduction to Matlab

8

ans =

ans =

Here, all four functions have been tested using the same command. As you can see, the semicolon suppresses the echo while the comma separates various computations. Summary of some functions is given below:

Function Stands for abs Absolute value sqrt Square root function sign Signum function conj Conjugate of a complex number imag Imaginary part of a complex number real Real part of a complex number angle Phase angle of a complex number cos Cosine function sin Sine function tan Tangent function exp Exponential function log Natural logarithm log10 Logarithm base 10 cosh Hyperbolic cosine function sinh Hyperbolic sine function tanh Hyperbolic tangent function acos Inverse cosine acosh Inverse hyperbolic cosine asin Inverse sine asinh Inverse hyperbolic sine atan Inverse tan atan2 Two argument form of inverse tan atanh Inverse hyperbolic tan round Round to nearest integer floor Round towards minus infinity fix Round towards zero ceil Round towards plus infinity rem Remainder after division

.. . .. .

Introduction to Matlab

10

Note that in some cases, the upper limit may not be attainable thing. For example, in case of 1:0.3:2, the upper limit is not reached and the resulting vector in this case is: » 1:0.3: ans = 1.0000 1.3000 1.6000 1. If only two of the ‘range’ specifications are given then a unit step size is automatically assumed. For example 1:4 means: » 1: ans = 1 2 3 4 In case, the range is not valid, an error message is issued: » 1:-1: ans = Empty matrix: 1-by- Here, the range of numbers given for the generation of row vector was from 1 to 5 in steps of -1. Clearly, one can not reach 5 from 1 using -1 step size. Therefore, the Matlab indicates that this is an empty matrix.

Sections of a Vector

Let us define a vector using the range notation:

» W=[1:3, 7:9] W = 1 2 3 7 8 9 Now, we would like to extract the middle two elements of this vector. This can be done with the range notation again. As you can see, the middle two elements are 3:4 range. Therefore, the required part of vector can be obtained as:

» W(3:4) ans = 7 This really is the required part. There are many interesting things that can now be done using the range notation. For example, range 6:-1:1 is the descending range and when used with part-extraction of vector, it gives: » W(6:-1:1) ans = 9 8 7 3 2 1 which is the vector W with all entries now in reverse order. So, a vector can be flipped easily. The ‘size’ function yields the length of a vector. For a given vector V, V(size(V):-1:1) will flip it. Note that flipping of sections of a vector is also possible.

Introduction to Matlab

11

Column Vectors

The column vectors in Matlab are formed by using a set of numbers in a pair of square brackets and separating them with semi-colon. Therefore, one can define two column vectors A and B and add them as below:

» A=[1;2;3]; B=[4;5;6]; A+B ans = 5 7 9 The two column vectors were defined first and then their sum was obtained. In similar way, all other standard operations with the column vectors can be carried out.

Transpose

Of course, the convenient way of creating a row vector does not have any similar method for the column vector. But, one can do it by first creating a row vector using the range notation and then transposing the resulting row vector into a column vector. The transpose is obtained with a ` as shown below:

» A=[1:4]; B=A' B = 1 2 3 4 Here, first a row vector [1 2 3 4] is formed which is called A. This vector is then transposed to form the B—a column vector.

Note: If C is a complex vector, then C’ will give its complex conjugate transpose vector.

» C=[1+i, 1-i]; D=C' D = 1.0000 - 1.0000i 1.0000 + 1.0000i The vector C was a complex vector and its complex conjugate is [1-i 1+i] vector. Vector D is clearly its complex conjugate transpose vector. Some times, one does not want the complex conjugate part. In order to get a simple transpose, use .’ to get the transpose. For example:

» C=[1+i, 1-i]; E=C.'

Introduction to Matlab

13

Elementary Plots and Graphs

Matlab offers powerful graphics and visualization tools. Let us start with some of the very basic graphics capabilities of Matlab. The graph of sine function in 0 to π can be obtained in the following way:

» N=30; h=pi/N; x=0:h:pi; y=sin(x); plot(x,y) Here, in the first step, the total number of sampling points for the function is defined as N and it is assigned a value 30. Next, the step size ‘h’ is defined and the x row vector of size N+1 is defined along with the corresponding y row vector composed of the function values. The command ‘plot(x,y)’ generates the graph of this data and displays it in a separate window labeled Figure No. 1 as shown below:

The graph displayed in this window can be zoomed-in and zoomed-out. Both x-any y-axes can also be rescaled with the help of mouse and using appropriate buttons and menu items. The graph title, x- and y-labels can be assigned using the following commands:

title(‘Graph of sine function in 0 to pi range’) xlabel(‘x’) ylabel(‘sin(x)’) Note that by using these commands as such, one gets the corresponding response on the graph window immediately.

.. . .. .

Introduction to Matlab

14

The grid lines on the graph can be switched on or off using the ‘grid’ command. By issuing this command once, grid will be turned on. Using it again, the grid will be turned off.

Matlab allows users to change the color as well as the line style of graphs by using a third argument in the plot command. For example, plot(x,y,’w-‘) will plot x-y data using white (w) color and solid line style (-). Further such options are given in the following table:

Color Symbol Color Line Symbol Line type y Yellow.^ Point m Magenta O^ Circle c Cyan X^ x-mark r Red +^ Plus mark g Green -^ solid b Blue *^ Star w White :^ Dotted b Black -.^ Dash-dot -- (^) dashed

.. . .. .

Introduction to Matlab

16

Each plot command erases the previous graphics window (the Figure No.

  1. and draws on it. If you wish, you can send plot on the same window by first using the hold command and later sending plot to it with the plot command. The hold command can be switched off by using ‘hold off’ when desired.

Subplots

Let us now consider a different situation. We want to plot both sine and cosine functions again in the 0 to 2π range but on separate graphs. If we issue two separate plot commands, the previous graph is erased. If we use hold, then essentially, it is multiplot which you do not want. You want to plot these functions on two graphs placed next to each other. This is done with the help of subplot command, which splits the graphics window in to mxn array of sub-plot sections. Here, we create 1x2 panels (one row, two columns):

» N=15;h=2pi/N; x=0:h:2pi; » subplot(122);plot(x,cos(x));xlabel('x'); ylabel('cosine');grid » subplot(121);plot(x,sin(x));xlabel('x'); ylabel('sine');grid

Introduction to Matlab

17

The first subplot command picks the first column of this panel and plots the sine function in it. The second picks the second column and plots the cosine function in it. In this way, the graph is constructed.

Axes Control

The axes of the graph can be controlled by the user with the help of axis command which accepts a row vector composed of four components. The first two of these are the minimum and the maximum limits of the x-axis and the last two are same for the y-axis. Matlab also allows users to set these axes with ‘equal’, ‘auto’, ‘square’ and ‘normal’ options. For example axis(‘auto’) will scale the graph automatically for you. Similarly, axis([0 10 0 100]) will scale the graph with x-axis in [0, 10] range and y-axis in [0, 100] range.

Scripts

Some times, it becomes necessary to give a set of Matlab commands again. In such cases, it becomes tedious to type-in every thing. Matlab offers a

Introduction to Matlab

19

Here, one can type-in desired set of commands and save it. The default directory for these files is already in the search path of Matlab. If you wish to save the file into a directory of your own choice, please do not forget to include it in the Matlab search path. This can be clicking on the file—select path menu item which will open the path browser for you:

You can use the menu item path—add to path to add the directory of your choice to the Matlab path:

.. . .. .

Introduction to Matlab

20

By clicking on the button with … on it, the directory browser dialog can be opened and by clicking on the desired directory, you can select the directory to be added. After that, just press OK button to add the directory to the path. After saving the script file in a directory in Matlab path, the commands inside it can be invoked by just typing the name of the file (without the .m extension).

Working with Vectors and Matrices

Vectors can be manipulated in various ways. A scalar can be added to vector elements in Matlab using .+ notation:

» A=[1 2 ];

» B=2.+A

B =

3 4

Note the use of the ‘dot’ before the ‘+’ sign which means apply it on element basis. In exactly same way, division, multiplication, subtraction and raised to the power operations can be carried out. For example, let us raise each element of a matrix to power 2 using the ‘dot’ notation:

B=[2 3 4; 5 4 6; 1 3 2]; B.^ ans = 4 9 16 25 16 36 1 9 4 B^ ans = 23 30 34 36 49 56 19 21 26 In the first case, each element of the matrix B has been raised to power 2. For this purpose, the dot notation was used. In the second case, the same matrix