Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

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

2 2 Purpose  This course is an introductory level course for beginners.  The purpose of this course is to introduce you to some of the basic commands and features of MATLAB.

3 3 Course agenda  Introduction  Getting started  Mathematical functions  Matrix generation  Reading and writing data files  Basic plotting  Basic programming

4 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  Popularity in both academia and industry  Disadvantage of MATLAB  Can be slow

5 5 Getting started  MATLAB desktop  The Command Window  The Command History  The Workspace  The Current Directory  The Help Browser  The Start Button

6 6 Getting started  Using MATLAB as a calculator >> pi ans = 3.1416 More examples: >> sin(pi/4) >> 2^(log(4)) >> sqrt(9)

7 7 Getting started  A ssign values to output variables >> x=5 x= 5 >> y = 'Bob' y = Bob

8 8 Getting started  Suppressing output  You can suppress the numerical output by putting a semicolon (;) at the end of the line >> t=pi/3 >> u=sin(t)/cos(t); >> v= u- tan(t);  Case sensitive  Example: “time” and “Time” are different variables >> time=61; >> Time=61;

9 9 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 t or >> clear all

10 10 Getting started  Miscellaneous commands  To clear the Command Window >> clc  To abort a MATLAB computation ctrl-C  To continue a line …  To recall previous commands

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

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

13 13 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  Example 2 log(142), log10(142)

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

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

16 16 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

17 17 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

18 18 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.  Examples: A(2:3, 2:3) A(2, :) A(2:end, :)

19 19 Matrix generation  Transposing a matrix The transposing operation is a single quote (’) >>A’  Concatenating matrices Matrices can be made up of sub-matrices >>B= [A 10*A; -A [1 0 0; 0 1 0; 0 0 1]]

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

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

22 22 Reading and writing data files  Save command Example 1, save all variables in the workspace into a binary file: >> x = [1 3 -4]; >> y = [2 -1 7]; >> z = [3 2 3]; >> save Filename.mat Save only certain variables by specifying the variable names after the file name >> save Filename.mat x y

23 23  Save command  Example 2, save variables into ASCII data file >> save Filename.dat x y –ascii or >> save Filename.txt x y –ascii Reading and writing data files

24 24  load command  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 Reading and writing data files

25 25  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); Reading and writing data files

26 26  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); Reading and writing data files

27 27  The xlsread function  The xlsread function is to get data and text from a spreadsheet in an Excel workbook.  The basic command is: >> d=xlsread(‘datafile.xls’) Reading and writing data files

28 28 Basic plotting  A simple line plot  To plot the function y=sin(x) on the interval [0, 2 ] >>x=0:pi/100:2*pi; >>y=sin(x); >>plot(x,y) >>xlabel (‘x=0:2\pi’); >>ylabel (‘Sine of x’); >>title (‘Plot of the Sine function’);

29 29 Basic plotting  Plotting elementary functions

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

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

32 32 Basic plotting  Multiple data sets in one plot

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

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

35 35 Basic plotting  Subplot

36 36 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 plotting soil temperature into a file called scriptexample.m

37 37 Programming in MATLAB  M-File scripts  Enter the following statements in the file load 'soilT.dat'; time=soilT(:,1); soil_temp_mor=soilT(:,2); soil_temp_aft=soilT(:,3); plot(time,soil_temp_mor,'--',time,soil_temp_aft,'-'); xlabel('Time'); ylabel('Soil temperature'); legend('Morning','Afternoon'); title('Soil Temperature');  Save and name the file, scriptexample.m Note: the first character of the filename must be a letter

38 38 Programming in MATLAB  M-File scripts  Run the file

39 39 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 % ------------------------------------------------------- % scriptexample.m is to display soil temperature in the morning and %the afternoon. % -------------------------------------------------------

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

41 41 Programming in MATLAB  M-File functions  Consider an example to plot the piecewise defined function:

42 42 Programming in MATLAB  M-File functions  It is convenient to have a separate file which can do a specific calculation. function [F]= eff(x) % Function to calculate values % Input x % Output F for i=1:length(x) if x(i)<0.5 F(i)=x(i)^2; else F(i)=0.25; end

43 43 Programming in MATLAB  M-File functions  To evaluate this function, a main program is needed. This main program provides input arguments % Main program, use function: eff.m x=-1:0.01:1; plot(x,eff(x)); grid xlabel('x'); ylabel('F'); title('The Piecewise Defined Function:');

44 44 Programming in MATLAB  M-File functions  Run the main file

45 45 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


Ads by Google