450 likes | 575 Views
Introduction to MATLAB. Zongqiang Liao Research Computing Group UNC-Chapel Hill. 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. Course agenda. Introduction
E N D
Introduction to MATLAB Zongqiang Liao Research Computing Group UNC-Chapel Hill
Purpose • This course is an introductory level course for beginners. • The purpose of this course is to introduce you to some of the basiccommands and features of MATLAB.
Course agenda • Introduction • Getting started • Mathematical functions • Matrix generation • Reading and writing data files • Basic plotting • Basic programming
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
Getting started • MATLAB desktop • The Command Window • The Command History • The Workspace • The Current Directory • The Help Browser • The Start Button
Getting started • Using MATLAB as a calculator >> pi ans = 3.1416 More examples: >> sin(pi/4) >> 2^(log(4)) >> sqrt(9)
Getting started • Assign values to output variables >> x=5 x= 5 >> y = 'Bob' y = Bob
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;
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
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
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
Mathematical functions • Lists of build-in mathematical functions • Elementary functions >> help elfun • Special functions >> help specfun • Such as sin(x), cos(x), tan(x), ex, ln(x)
Mathematical functions • Example 1 Calculate z=e-asin(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)
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)
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, ]
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
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
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, :)
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]]
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
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
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
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
Reading and writing data files • 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 • 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 • 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);
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
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’);
Basic plotting • Plotting elementary functions
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: y1=2cos(x), y2=cos(x), and y3=0.5cos(x), on the interval [0, 2 ]
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’)
Basic plotting • Multiple data sets in one plot
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: y1=sin(3 x), y2=cos(3 x), y3=sin(6 x), y4=cos(6 x), on the interval [0, 1]
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)’)
Basic plotting • Subplot
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
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
Programming in MATLAB • M-File scripts • Run the file
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. % -------------------------------------------------------
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
Programming in MATLAB • M-File functions • Consider an example to plot the piecewise defined function:
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 end
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:');
Programming in MATLAB M-File functions Run the main file
Questions and Comments? • For assistance with MATLAB, please contact the Research Computing Group: • Email: research@unc.edu • Phone: 919-962-HELP • Submit help ticket at http://help.unc.edu