Introduction to MATLAB Zongqiang Liao Research Computing Group UNC-Chapel Hill
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 Course agenda Introduction Getting started Mathematical functions Matrix generation Reading and writing data files Basic plotting Basic programming
4 Introduction The name MATLAB stands for MATrix LABoratory It is good at dealing with matrices Vendor’s website: http//: 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 Getting started MATLAB desktop The Command Window The Command History The Workspace The Current Directory The Help Browser The Start Button
6 Getting started Using MATLAB as a calculator >> pi ans = More examples: >> sin(pi/4) >> 2^(log(4)) >> sqrt(9)
7 Getting started A ssign values to output variables >> x=5 x= 5 >> y = 'Bob' y = Bob
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 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 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 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 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 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= Example 2 log(142), log10(142)
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 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 Matrix generation Entering a matrix: A typical example >> A=[1 2 3; 4 5 6; 7 8 9] >> A=
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 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 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 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 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 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 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 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 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 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 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 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 Basic plotting Plotting elementary functions
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 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 Basic plotting Multiple data sets in one plot
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 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 Basic plotting Subplot
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 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 Programming in MATLAB M-File scripts Run the file
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 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 Programming in MATLAB M-File functions Consider an example to plot the piecewise defined function:
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 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 Programming in MATLAB M-File functions Run the main file
45 Questions and Comments? For assistance with MATLAB, please contact the Research Computing Group: Phone: HELP Submit help ticket at