 # Introduction to MATLAB Zongqiang Liao Research Computing Group UNC-Chapel Hill.

## Presentation on theme: "Introduction to MATLAB Zongqiang Liao Research Computing Group UNC-Chapel Hill."— Presentation transcript:

Introduction to MATLAB Zongqiang Liao Research Computing Group UNC-Chapel Hill

its.unc.edu 2 Course outline  Introduction  Getting started  Mathematical functions  Matrix generation  Matrix and array operations  Reading and writing data files  Basic plotting  Basic programming

its.unc.edu Introduction

its.unc.edu 4 Introduction  The name MATLAB stands for MATrix LABoratory  It is good at dealing with matrices  Vendor’s website: http//:www.mathworks.com  Advantages of MATLAB  Easiness of use  Powerful build-in routines and toolboxes  Good visualization of results  Disadvantage of MATLAB  Can be slow

its.unc.edu Getting started

its.unc.edu 6 Getting started  MATLAB desktop  The Command Window  The Command History  The Workspace  The Current Directory  The Help Browser  The Start Button

its.unc.edu 7 Getting started  Keeping track of your work session  diary command >> diary or >> diary FileName  Stop the recording >> diary off  Start the recording again >>diary on

its.unc.edu 8 Getting started  Using MATLAB as a calculator >> 1+2*3 ans = 7  You may assign the value to a output variable >> x=1+2*3 x= 7  x can be used in the some calculation later >> 4*x ans = 28

its.unc.edu 9 Getting started  Suppressing output  You can suppress the numerical output by putting a semicolon (;) at the end of the line >> t=-13;  We can place several statements on one line, separated by commas (,) or semicolons(;) >> t=-13; u=5*t, v=t^2+u u= -65 v= 104

its.unc.edu 10 Getting started  Managing the workspace  The results of one problem may have an effect on the next one  Issue a clear command at the start of each new independent calculation >> clear or >> clear all

its.unc.edu 11 Getting started  Miscellaneous commands  To clear the Command Window >> clc  To abort a MATLAB computation ctrl-C  To continue a line …

its.unc.edu 12 Getting started  Getting help  Use help to request info on a specific function >> help sqrt  Use doc function to open the on-line version of the help menu >> doc plot  Use lookfor to find function by keywords >> lookfor functionkeyword

its.unc.edu Mathematical functions

its.unc.edu 14 Mathematical functions  Lists of build-in mathematical functions  Elementary functions >> help elfun  Special functions >> help specfun  Such as sin(x), cos(x), tan(x), e x, ln(x)

its.unc.edu 15 Mathematical functions  Example 1 Calculate z=e -a sin(x)+10 for a=5, x=2, y=8 >> a=5; x=2; y=8; >> z=exp(-a)*sin(x)+10*sqrt(y) z= 28.2904

its.unc.edu 16 Mathematical functions  Example 2 Calculate the roots of a equation ax 2 +bx+c=0, for a=2, b=1, and c=-4 >> a=2; b=1; c=-4; >> x1=(-b+sqrt(b^2-4*a*c))/(2*a) x1= 1.1861 >> x2=(-b-sqrt(b^2-4*a*c))/(2*a) x2= -1.1861

its.unc.edu 17 Mathematical functions  Example 3 >> log(142) ans= 4.9558 >> log10(142) ans= 2.1523

its.unc.edu 18 Mathematical functions  Example 4 Calculate sin( /4) >> sin(pi/4) ans = 0.7071 Calculate e 10 >> exp(10) ans = 2.2026e+004

its.unc.edu Matrix generation

its.unc.edu 20 Matrix generation  The name MATLAB is taken from ”MATrix LABoratory.” It is good at dealing with matrices.  Actually all variables in MATLAB are matrices.  Scalars are 1-by-1 matrices  vectors are N-by-1 (or 1-by-N) matrices.  You can see this by executing >> size(x)

its.unc.edu 21 Matrix generation  Entering a matrix  Begin with a square bracket, [  Separate elements in a row with spaces or commas (,)  Use a semicolon (;) to separate rows  End the matrix with another square bracket, ]

its.unc.edu 22 Matrix generation Entering a matrix: A typical example >> A=[1 2 3; 4 5 6; 7 8 9] >> A= 1 2 3 4 5 6 7 8 9

its.unc.edu 23 Matrix generation  Matrix indexing  View a particular element in a matrix  For example, A(1,3) is an element of first row and third column >>A(1,3) >>ans = 3

its.unc.edu 24 Matrix generation  Colon operator in a matrix  Colon operator is very useful in the usage of MATLAB  For example, A(m:n,k:l) specifies portions of a matrix A: rows m to n and column k to l.

its.unc.edu 25 Matrix generation  Colon operator in a matrix  Example 1 Rows 2 and 3 and columns 2 and 3 of matrix A >>A(2:3, 2:3) ans = 5 6 8 9

its.unc.edu 26 Matrix generation  Colon operator in a matrix  Example 2 Second row element of matrix A >>A(2, :) ans = 4 5 6

its.unc.edu 27 Matrix generation  Colon operator in a matrix  Example 3 Last two columns of matrix A >>A(:, 2:3) ans = 2 3 5 6 8 9

its.unc.edu 28 Matrix generation  Colon operator in a matrix  Example 4 Last rows of matrix A >>A(2:end, :) ans = 4 5 6 7 8 9 The end here denotes the last index in the specified dimension

its.unc.edu 29 Matrix generation  Transposing a matrix  The transposing operation is a single quote (’) >>A’ ans = 1 4 7 2 5 8 3 6 9

its.unc.edu 30 Matrix generation  Concatenating matrices  Matrices can be made up of sub-matrices >>B= [A 10*A; -A [1 0 0; 0 1 0; 0 0 1]] B = 1 2 3 10 20 30 4 5 6 40 50 60 7 8 9 70 80 90 -1 -2 -3 1 0 0 -4 -5 -6 0 1 0 -7 -8 -9 0 0 1

its.unc.edu 31 Matrix generation  Generating vectors: colon operator  Suppose we want to enter a vector x consisting of points (0, 0.1, 0.2, 0.3,…,5) >>x=0:0.1:5;  All the elements in between 0 and 5 increase by one- tenth

its.unc.edu 32 Matrix generation  Generating vectors: linear spacing  Suppose we want to have direct control over the number of points. >>y=linspace(a, b, n) For example, >>theta=linspace(0, 2*pi, 101) Creates a vector of 101 elements in the interval

its.unc.edu 33 Matrix generation  Elementary matrix generators  eye(m,n)  eye(n)  zeros(m,n)  ones(m,n)  diag(A)  rand(m,n)  randn(m,n)  logspace(a,b,n)  For a complete list of elementary matrices >>help elmat >>doc elmat

its.unc.edu Matrix arithmetic operation

its.unc.edu 35 Matrix arithmetic operation  Arithmetic operations  A+B or B+A  A*B  A^2 or A*A  a*A or A*a

its.unc.edu 36 Matrix arithmetic operation  Matrix functions  det  diag  eig  inv  norm  rank

its.unc.edu 37 Matrix arithmetic operation  Matrix functions  For example >> A=[1 2 3; 4 5 6; 7 8 0]; >>inv(A) ans = -1.7778 0.8889 -0.1111 1.5556 -0.7778 0.2222 -0.1111 0.2222 -0.1111 >>det(A) ans = 27

its.unc.edu 38 Matrix arithmetic operation  More matrix operations  Calculate the sum of elements in the second row of matrix A >> sum(A(2,:))  Calculates the sum of the last column of A >>sum(A(:,end))

its.unc.edu Array arithmetic operation

its.unc.edu 40 Array arithmetic operation  Array operations  Array operations are done element-by-element  The period character (.) is used in array operations  The matrix and array operations are the same for addition (+) and subtraction (-)

its.unc.edu 41 Array arithmetic operation  Array operations If A and B are two matrices of the same size with elements A=[ a ij ] and B=[ b ij ]  C=A.*B produces a matrix C of the same size with elements c ij = a ij b ij  C=A./B produces a matrix C of the same size with elements c ij = a ij /b ij  C=A.^2 produces a matrix C of the same size with elements c ij = a ij 2

its.unc.edu 42 Array arithmetic operation  Array operations  Example 1 A= B= >>C=A.*B C= 10 40 90 160 250 360 490 640 810

its.unc.edu 43 Array arithmetic operation  Array operations  Example 2 >>C=A.^2 C= 1 4 9 16 25 36 49 64 81

its.unc.edu Reading and writing data files

its.unc.edu 45 Reading and writing data files  Save and load data file  Use command save to save the variable in the workspace  For example, use command save: >> x = [1 3 -4]; >> y = [2 -1 7]; >> z = [3 2 3]; >> save Filename.mat The command saves all variables in the workspace into a binary file Filename.mat

its.unc.edu 46 Reading and writing data files  Save and load data file  Save only certain variables by specifying the variable names after the file name >> save Filename.mat x y  Save variables into ASCII data file >> save Filename.dat x y –ascii

its.unc.edu 47 Reading and writing data files  Save and load data file  The data can be read back with the load command >> load Filename.mat  Load only some of the variables into memory >> load Filename.mat x  Load the ASCII data file back into memory >> load Filename.dat -ascii

its.unc.edu 48 Reading and writing data files  The textread function  The load command assumes all of data is of a single type  The textread function is more flexible, it is designed to read ASCII files where each column can be of a different type  The command is: >> [A,B,C,...] = textread(filename, format, n);

its.unc.edu 49 Reading and writing data files  The textread function  For example, if a text file “mydata.dat” contains the following lines: tommy 32 male 78.8 sandy 3 female 88.2 alex 27 male 44.4 saul 11 male 99.6  The command is: >> [name,age,gender,score] = textread(‘mydata.dat’, ‘%s %d %s %f’, 4);

its.unc.edu 50 Reading and writing data files  C style read/write  MATLAB allows C style file access. It is crucially important that a correct data format is used.  The steps are: Open a file for reading or writing. A unique file identifier is assigned. Read the data to a vector Close the file with file identifier

its.unc.edu 51 Reading and writing data files  C style read/write: formatted files  In order to read results in formatted data files, the data format of the files must be know  For example, the numeric data is store in a file ‘sound.dat’. The commands reading data are: >> fid = fopen(‘sound.dat’,‘r’); >> data = fscanf(fid, ‘%f’); >> fclose(fid);

its.unc.edu 52 Reading and writing data files  C style read/write: unformatted/binary files  In order to read results in unformatted data files, the data precision of the files must be specified  For example, the numeric data is store as floating point numbers using 32 memory bits in a file ‘vib.dat’. The commands reading data are: >> fid1 = fopen(‘vib.dat’,‘rb’); >> data = fread(fid1, ‘float32’); >> fclose(fid);

its.unc.edu Basic plotting

its.unc.edu 54 Basic plotting  Plotting elementary functions  To plot the function y=sin(x) on the interval [0, 2 ] First create a vector of x values ranging from 0 to 2 Compute the sine of these values Plot the result

its.unc.edu 55 Basic plotting  Plotting elementary functions >>x=0:pi/100:2*pi; >>y=sin(x); >>plot(x,y)

its.unc.edu 56 Basic plotting  Plotting elementary functions

its.unc.edu 57 Basic plotting  Adding titles, axis labels >>xlabel (‘x=0:2\pi’); >>ylabel (‘Sine of x’); >>title (‘Plot of the Sine function’); The character \pi creates the symbol

its.unc.edu 58 Basic plotting  Multiple data sets in one plot  Several graphs may be drawn on the same figure  For example, plot three related function of x: y 1 =2cos(x), y 2 =cos(x), and y 3 =0.5cos(x), on the interval [0, 2 ]

its.unc.edu 59 Basic plotting  Multiple data sets in one plot >> x = 0:pi/100:2*pi; >> y1 = 2*cos(x); >> y2 = cos(x); >> y3 = 0.5*cos(x); >> plot(x,y1,‘--’,x,y2,‘-’,x,y3,‘:’) >> xlabel(‘0 \leq x \leq 2\pi’) >> ylabel(‘Cosine functions’) >> legend(‘2*cos(x)’,‘cos(x)’,‘0.5*cos(x)’) >> title(‘Typical example of multiple plots’)

its.unc.edu 60 Basic plotting  Multiple data sets in one plot

its.unc.edu 61 Basic plotting  Subplot  The graphic window can be split into an m*n array of small windows.  The windows are counted 1 to mn row-wise, starting from the top left  For example, plot three related function of x: y 1 =sin(3 x), y 2 =cos(3 x), y 3 =sin(6 x), y 4 =cos(6 x), on the interval [0, 1]

its.unc.edu 62 Basic plotting  Subplot >> x = 0:1/100:1; >> y1 = sin(3*pi*x); >> y2 = cos(3*pi*x); >> y3 = sin(6*pi*x); >> y4 = cos(6*pi*x); >> title(‘Typical example of subplots’) >> subplot(2,2,1), plot(x,y1) >> xlabel(‘0 \leq x \leq 1’), ylabel(‘sin(3 \pi x)’) >> subplot(2,2,2), plot(x,y2) >> xlabel(‘0 \leq x \leq 1’), ylabel(‘cos(3 \pi x)’) >> subplot(2,2,3), plot(x,y3) >> xlabel(‘0 \leq x \leq 1’), ylabel(‘sin(6 \pi x)’) >> subplot(2,2,4), plot(x,y4) >> xlabel(‘0 \leq x \leq 1’), ylabel(‘cos(6 \pi x)’)

its.unc.edu 63 Basic plotting  Subplot

its.unc.edu Programming in MATLAB

its.unc.edu 65 Programming in MATLAB  M-File scripts  In order to repeat any calculation and/or make any adjustments, it is create a file with a list of commands.  “File  New  M-file”  For example, put the commands for calculating the roots of a quadratic equation into a file called quat.m

its.unc.edu 66 Programming in MATLAB  M-File scripts  Enter the following statements in the file a = 2; b = 1; c = -4; x1=(-b+sqrt(b^2-4*a*c))/(2*a) x2=(-b-sqrt(b^2-4*a*c))/(2*a)  Save and name the file, quat.m Note: the first character of the filename must be a letter

its.unc.edu 67 Programming in MATLAB  M-File scripts  Run the file >> quat x1= 1.1861 x2= -1.1861

its.unc.edu 68 Programming in MATLAB  M-File scripts  It is possible to modify the file so that it prompts you for inputting values of a, b, and c each time it runs. a = input(‘Enter a: ’); b = input(‘Enter b: ’); c = input(‘Enter c: ’); x1=(-b+sqrt(b^2-4*a*c))/(2*a) x2=(-b-sqrt(b^2-4*a*c))/(2*a)

its.unc.edu 69 Programming in MATLAB  M-File scripts  Re-run this file, you may type in the values for a, b and c >> quat Enter a: 3 Enter b: 4 Enter c: 5 x1 = -0.6667 + 1.1055i x2 = -0.6667 - 1.1055i

its.unc.edu 70 Programming in MATLAB  M-File scripts  MATLAB treats anything that appears after the % on a line as comments and these line will be ignored when the file runs % ------------------------------------------------------- % quat.m is to solve quadratic equation ax^2 + bx + c =0 % ------------------------------------------------------- a = input(‘Enter a: ’); b = input(‘Enter b: ’); c = input(‘Enter c: ’); x1=(-b+sqrt(b^2-4*a*c))/(2*a) x2=(-b-sqrt(b^2-4*a*c))/(2*a)

its.unc.edu 71 Programming in MATLAB  M-File scripts  You can display the first block of comment lines in any.m file by issuing the help command >>help quat % ------------------------------------------------------- % quat.m is to solve quadratic equation ax^2 + bx + c =0 % -------------------------------------------------------

its.unc.edu 72 Programming in MATLAB  M-File functions  Functions are routines that are general and applicable to many problems.  To define a MATLAB function:  Decide a name for the function, making sure that it does not conflict a name that is already used by MATLAB.  Document the function  The first command line of the file must have this format: Function[list of outputs]=functionname(list of inputs) …….  Save the function as a M-file

its.unc.edu 73 Programming in MATLAB  M-File scripts  In the previous example, it is convenient to have a separate file which calculate the roots of a quadratic equation % ------------------------------------------------------- % quatsolv.m is to compute the roots of quadratic % equation ax^2 + bx + c =0 % ------------------------------------------------------- function [x1, x2] = quatsolv(a, b, c) x1=(-b+sqrt(b^2-4*a*c))/(2*a) x2=(-b-sqrt(b^2-4*a*c))/(2*a)

its.unc.edu 74 Programming in MATLAB  M-File scripts  To evaluate this function, a main program is needed. This main program provides input argumentss (a, b, and c) % ------------------------------------------------------- % main.m is to solve quadratic equation ax^2 + bx + c =0 % it calls the external function quatsolv.m % ------------------------------------------------------- a = input(‘Enter a: ’); b = input(‘Enter b: ’); c = input(‘Enter c: ’); [x1, x2] = quatsolv(a, b, c); x1 x2

its.unc.edu 75 Programming in MATLAB  M-File scripts  Example 2:  A new quatsolv2.m file is defined as the following: % ---------------------------------------------------------- % quatsolv2.m is to compute the values of % quadratic equation ax^2 + bx + c % ---------------------------------------------------------- function y = quatsolv2(x) global a b c y = a*x^2 + b*x + c;

its.unc.edu 76 Programming in MATLAB  M-File scripts  Example 2:  A new main file % ------------------------------------------------------- % main2.m is to plot quadratic equation ax^2 + bx + c for % some range. % it calls the external function quatsolv2.m % ------------------------------------------------------- global a b c a = 1; b = 0; c = -2; fplot(‘quatsolv2’,[-4, 4])

its.unc.edu 77 Programming in MATLAB  M-File scripts  If run main2.m

its.unc.edu Questions and comments?

its.unc.edu 79 Questions and comments?  For assistance with MATLAB, please contact the Research Computing Group:  Email: research@unc.eduresearch@unc.edu  Phone: 919-962-HELP  Submit help ticket at http://help.unc.eduhttp://help.unc.edu

Download ppt "Introduction to MATLAB Zongqiang Liao Research Computing Group UNC-Chapel Hill."

Similar presentations