Download presentation

Presentation is loading. Please wait.

Published byJacob Morton Modified over 3 years ago

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

2
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

3
its.unc.edu Introduction

4
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

5
its.unc.edu Getting started

6
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

7
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

8
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

9
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

10
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

11
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 …

12
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

13
its.unc.edu Mathematical functions

14
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)

15
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

16
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

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

18
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

19
its.unc.edu Matrix generation

20
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)

21
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, ]

22
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

23
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

24
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.

25
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

26
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

27
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

28
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

29
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

30
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

31
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

32
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

33
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

34
its.unc.edu Matrix arithmetic operation

35
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

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

37
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

38
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))

39
its.unc.edu Array arithmetic operation

40
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 (-)

41
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

42
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

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

44
its.unc.edu Reading and writing data files

45
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

46
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

47
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

48
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);

49
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);

50
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

51
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);

52
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);

53
its.unc.edu Basic plotting

54
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

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

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

57
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

58
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 ]

59
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’)

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

61
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]

62
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)’)

63
its.unc.edu 63 Basic plotting Subplot

64
its.unc.edu Programming in MATLAB

65
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

66
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

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

68
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)

69
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

70
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)

71
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 % -------------------------------------------------------

72
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

73
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)

74
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

75
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;

76
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])

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

78
its.unc.edu Questions and comments?

79
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

Similar presentations

© 2019 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google