450 likes | 589 Vues
This introductory course on MATLAB is designed for beginners who wish to explore the basics of this powerful programming environment. Covering essential commands and features, participants will learn about mathematical functions, matrix generation, reading and writing data files, and basic plotting techniques. The course also addresses the advantages and disadvantages of MATLAB, offers hands-on practice, and emphasizes good programming practices. By the end, learners will gain the confidence and skills needed to utilize MATLAB for various applications in academia and industry.
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