SlideShare a Scribd company logo
Tutorial on Matlab Basics
EECS 639
August 31, 2016
Matlab Basics
• To start Matlab: Select MATLAB on the menu (if
using Windows). Type “matlab” on the
command line (if using Linux).
Getting Help and
Looking Up Functions
• To get help on a function type “help function_name”,
e.g., “help plot”.
• To find a topic, type “lookfor topic”, e.g., “lookfor matrix”
Matlab’s Workspace
• who, whos – current workspace vars.
• save – save workspace vars to *.mat file.
• load – load variables from *.mat file.
• clear all – clear workspace vars.
• close all – close all figures
• clc – clear screen
• clf – clear figure
Basic Commands
• % used to denote a comment
• ; suppresses display of value (when
placed at end of a statement)
• ... continues the statement on next line
• eps machine epsilon
• inf infinity
• NaN not-a number, e.g., 0/0.
Numbers
• To change format of numbers:
format long, format short, etc.
See “help format”.
• Mathematical functions: sqrt(x), exp(x),
cos(x), sin(x), sum(x), etc.
• Operations: +, -, *, /
• Constants: pi, exp(1), etc.
Arrays and Matrices
• v = [-2 3 0 4.5 -1.5]; % length 5 row
vector.
• v = v’; % transposes v.
• v(1); % first element of v.
• v(2:4); % entries 2-4 of v.
• v([3,5]); % returns entries 3 & 5.
• v=[4:-1:2]; % same as v=[4 3 2];
• a=1:3; b=2:3; c=[a b];  c = [1 2 3 2 3];
Arrays and Matrices (2)
• x = linspace(-pi,pi,10); % creates 10
linearly-spaced elements from –pi to pi.
• logspace is similar.
• A = [1 2 3; 4 5 6]; % creates 2x3 matrix
• A(1,2) % the element in row 1, column 2.
• A(:,2) % the second column.
• A(2,:) % the second row.
Arrays and Matrices (3)
• A+B, A-B, 2*A, A*B % matrix addition,
matrix subtraction, scalar multiplication,
matrix multiplication
• A.*B % element-by-element mult.
• A’ % transpose of A (complex-
conjugate transpose)
• det(A) % determinant of A
Creating special matrices
• diag(v) % change a vector v to a
diagonal matrix.
• diag(A) % get diagonal of A.
• eye(n) % identity matrix of size n.
• zeros(m,n) % m-by-n zero matrix.
• ones(m,n) % m*n matrix with all ones.
Logical Conditions
• ==, <, >, <=, >=, ~= (not equal), ~ (not)
• & (element-wise logical and), | (or)
• find(‘condition’) – Return indices of A’s
elements that satisfies the condition.
• Example: A = [7 6 5; 4 3 2];
find (‘A == 3’); --> returns 5.
Solving Linear Equations
• A = [1 2 3; 2 5 3; 1 0 8];
• b = [2; 1; 0];
• x = inv(A)*b; % solves Ax=b if A is invertible.
(Note: This is a BAD way to solve the
equations!!! It’s unstable and inefficient.)
• x = Ab; % solves Ax = b.
(Note: This way is better, but we’ll learn how to
program methods to solve Ax=b.)
Do NOT use either of these commands in your
codes!
More matrix/vector operations
• length(v) % determine length of vector.
• size(A) % determine size of matrix.
• rank(A) % determine rank of matrix.
• norm(A), norm(A,1), norm(A,inf)
% determine 2-norm, 1-norm,
and infinity-norm of A.
• norm(v) % compute vector 2-norm.
For loops
• x = 0;
for i=1:2:5 % start at 1, increment by 2
x = x+i; % end with 5.
end
This computes x = 0+1+3+5=9.
While loops
• x=7;
while (x > = 0)
x = x-2;
end;
This computes x = 7-2-2-2-2 = -1.
If statements
• if (x == 3)
disp(‘The value of x is 3.’);
elseif (x == 5)
disp(‘The value of x is 5.’);
else
disp(‘The value of x is not 3 or 5.’);
end;
Switch statement
• switch face
case {1}
disp(‘Rolled a 1’);
case {2}
disp(‘Rolled a 2’);
otherwise
disp(‘Rolled a number >= 3’);
end
• NOTE: Unlike C, ONLY the SWITCH statement
between the matching case and the next case,
otherwise, or end are executed. (So breaks are
unnecessary.)
Break statements
• break – terminates execution of for and
while loops. For nested loops, it exits the
innermost loop only.
Vectorization
• Because Matlab is an interpreted
language, i.e., it is not compiled before
execution, loops run slowly.
• Vectorized code runs faster in Matlab.
• Example: x=[1 2 3];
for i=1:3 Vectorized:
x(i) = x(i)+5; VS. x = x+5;
end;
Graphics
• x = linspace(-1,1,10);
• y = sin(x);
• plot(x,y); % plots y vs. x.
• plot(x,y,’k-’); % plots a black line
of y vs. x.
• hold on; % put several plots in the
same figure window.
• figure; % open new figure window.
Graphics (2)
• subplot(m,n,1) % Makes an mxn array
for plots. Will place plot in 1st position.
X
Here m = 2 and n = 3.
Graphics (3)
• plot3(x,y,z) % plot 2D function.
• mesh(x_ax,y_ax,z_mat) – surface plot.
• contour(z_mat) – contour plot of z.
• axis([xmin xmax ymin ymax]) – change
axes
• title(‘My title’); - add title to figure;
• xlabel, ylabel – label axes.
• legend – add key to figure.
Examples of Matlab Plots
Examples of Matlab Plots
Examples of Matlab Plots
File Input/Output
• fid = fopen(‘in.dat’,’rt’); % open text
file for reading.
• v = fscanf(fid,’%lg’,10); % read 10
doubles from the text file.
• fclose(fid); % close the file.
• help textread; % formatted read.
• help fprintf; % formatted write.
Example Data File
Sally Type1 12.34 45 Yes
Joe Type2 23.54 60 No
Bill Type1 34.90 12 No
Read Entire Dataset
fid = fopen(‘mydata.dat’, ‘r’); % open file
for reading.
% Read-in data from mydata.dat.
[names,types,x,y,answer] =
textread(fid,’%s%s%f%d%s’);
fclose(fid); % close file.
Read Partial Dataset
fid = fopen(‘mydata.dat’, ‘r’); % open file
for reading.
% Read-in first column of data from mydata.dat.
[names] = textread(fid,’%s %*s %*f %*d %*s’);
fclose(fid); % close file.
Read 1 Line of Data
fid = fopen(‘mydata.dat’, ‘r’); % open file
% for reading.
% Read-in one line of data corresponding
% to Joe’s entry.
[name,type,x,y,answer] =…
textread(fid,’%s%s%f%d%s’,1,…
’headerlines’,1);
fclose(fid); % close file.
Writing formatted data.
% open file for writing.
fid = fopen(‘out.txt’,’w’);
% Write out Joe’s info to file.
fprintf(fid,’%s %s %f %d…
%sn’,name,type,x,y,answer);
fclose(fid); % close the file.
Keeping a record
• To keep a record of your session, use the diary
command:
diary filename
x = 3
diary off
This will keep a diary called filename showing
the value of x (your work for this session).
Timing
• Use tic, toc to determine the running time
of an algorithm as follows:
tic
commands…
toc
This will give the elapsed time.
Scripts and Functions
• Two kinds of M-files:
- Scripts, which do not accept input
arguments or return output arguments.
They operate on data in the workspace.
- Functions, which can accept input
arguments and return output
arguments. Internal variables are
local to the function.
M-file functions
• function [area,circum] = circle(r)
% [area, circum] = circle(r) returns the
% area and circumference of a circle
% with radius r.
area = pi*r^2;
circum = 2*pi*r;
• Save function in circle.m.
M-file scripts
• r = 7;
[area,circum] = circle(r);
% call our circle function.
disp([‘The area of a circle having…
radius ‘ num2str(r) ‘ is ‘…
num2str(area)]);
• Save the file as myscript.m.
Tutorial sources
• http://docplayer.net/15715694-
Introduction-to-matlab-basics-reference-
from-azernikov-sergei-mesergei-tx-
technion-ac-il.html
• Tutorial by Azernikov Sergei.
Interactive Example (1)
• Write a Matlab program to compute the
following sum
∑1/i2, for i=1, 2, …, 10
two different ways:
1. 1/1+1/4+…+1/100
2. 1/100+1/81+…+1/1.
Solution
% Forward summation
forwardsum = 0;
for i=1:10
forwardsum = forwardsum+1/(i^2);
end;
% Backward summation
backwardsum = 0;
for i=10:-1:1
backwardsum = backwardsum+1/(i^2);
end;
Interactive Example (2)
• Write a Matlab function to multiply two
n-by-n matrices A and B. (Do not use
built-in functions.)
Solution
function [C] = matrix_multiply(A,B,n)
C = zeros(n,n);
for i=1:n
for j=1:n
for k=1:n
C(i,j) = C(i,j) + A(i,k)*B(k,j);
end;
end;
end;
Can this code be written so that it
runs faster?
Hint: Use vectorization.
Solution
• Script to use for testing:
n = 10;
A = rand(n,n);
B = rand(n,n);
C = matrix_multiply(A,B,n);

More Related Content

Similar to matlab_tutorial.ppt (20)

PPT
WIDI FREAK MANUSIA SETENGAH EDIOTDAN LEMBOT
IrlanMalik
 
PDF
Dsp lab _eec-652__vi_sem_18012013
amanabr
 
PDF
Dsp lab _eec-652__vi_sem_18012013
Kurmendra Singh
 
PPT
MatlabIntro1234.ppt.....................
RajeshMadarkar
 
PPTX
Matlab ppt
chestialtaff
 
PPT
Introduction to Matlab.ppt
Ravibabu Kancharla
 
PPT
MatlabIntro.ppt
ShwetaPandey248972
 
PPT
MatlabIntro.ppt
konkatisandeepkumar
 
PPT
MatlabIntro.ppt
ssuser772830
 
PPT
MatlabIntro.ppt
Rajmohan Madasamy
 
PPT
Matlab intro
THEMASTERBLASTERSVID
 
PPT
WIDI ediot autis dongok part 1.ediot lu lemot lu setan lu
IrlanMalik
 
PPTX
MATLAB Workshop for project and research
Nuthal Srinivasan
 
PPTX
1. Introduction to Computing - MATLAB.pptx
tgkfkj9n2k
 
PPT
Matlab Tutorial.ppt
RaviMuthamala1
 
PPTX
Mat lab workshop
Vinay Kumar
 
PPT
Matlab1
guest8ba004
 
PDF
bobok
Adi Pandarangga
 
PPTX
Matlab Functions for programming fundamentals
HassanShah396906
 
PPT
matlab_tutorial for student in the first
naghamsalimmohammed
 
WIDI FREAK MANUSIA SETENGAH EDIOTDAN LEMBOT
IrlanMalik
 
Dsp lab _eec-652__vi_sem_18012013
amanabr
 
Dsp lab _eec-652__vi_sem_18012013
Kurmendra Singh
 
MatlabIntro1234.ppt.....................
RajeshMadarkar
 
Matlab ppt
chestialtaff
 
Introduction to Matlab.ppt
Ravibabu Kancharla
 
MatlabIntro.ppt
ShwetaPandey248972
 
MatlabIntro.ppt
konkatisandeepkumar
 
MatlabIntro.ppt
ssuser772830
 
MatlabIntro.ppt
Rajmohan Madasamy
 
Matlab intro
THEMASTERBLASTERSVID
 
WIDI ediot autis dongok part 1.ediot lu lemot lu setan lu
IrlanMalik
 
MATLAB Workshop for project and research
Nuthal Srinivasan
 
1. Introduction to Computing - MATLAB.pptx
tgkfkj9n2k
 
Matlab Tutorial.ppt
RaviMuthamala1
 
Mat lab workshop
Vinay Kumar
 
Matlab1
guest8ba004
 
Matlab Functions for programming fundamentals
HassanShah396906
 
matlab_tutorial for student in the first
naghamsalimmohammed
 

Recently uploaded (20)

PPTX
PROTIEN ENERGY MALNUTRITION: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
PPTX
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
PPTX
Translation_ Definition, Scope & Historical Development.pptx
DhatriParmar
 
PPTX
TOP 10 AI TOOLS YOU MUST LEARN TO SURVIVE IN 2025 AND ABOVE
digilearnings.com
 
DOCX
Unit 5: Speech-language and swallowing disorders
JELLA VISHNU DURGA PRASAD
 
PDF
EXCRETION-STRUCTURE OF NEPHRON,URINE FORMATION
raviralanaresh2
 
PPTX
Cybersecurity: How to Protect your Digital World from Hackers
vaidikpanda4
 
PPTX
LDP-2 UNIT 4 Presentation for practical.pptx
abhaypanchal2525
 
PPTX
Applied-Statistics-1.pptx hardiba zalaaa
hardizala899
 
PPTX
Introduction to Probability(basic) .pptx
purohitanuj034
 
PPTX
Virus sequence retrieval from NCBI database
yamunaK13
 
PPTX
Sonnet 130_ My Mistress’ Eyes Are Nothing Like the Sun By William Shakespear...
DhatriParmar
 
PPTX
ENGLISH 8 WEEK 3 Q1 - Analyzing the linguistic, historical, andor biographica...
OliverOllet
 
PPTX
Dakar Framework Education For All- 2000(Act)
santoshmohalik1
 
PPTX
Python-Application-in-Drug-Design by R D Jawarkar.pptx
Rahul Jawarkar
 
PPTX
YSPH VMOC Special Report - Measles Outbreak Southwest US 7-20-2025.pptx
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
 
PPTX
How to Close Subscription in Odoo 18 - Odoo Slides
Celine George
 
PDF
Virat Kohli- the Pride of Indian cricket
kushpar147
 
PPTX
Artificial Intelligence in Gastroentrology: Advancements and Future Presprec...
AyanHossain
 
PPTX
Cleaning Validation Ppt Pharmaceutical validation
Ms. Ashatai Patil
 
PROTIEN ENERGY MALNUTRITION: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
Translation_ Definition, Scope & Historical Development.pptx
DhatriParmar
 
TOP 10 AI TOOLS YOU MUST LEARN TO SURVIVE IN 2025 AND ABOVE
digilearnings.com
 
Unit 5: Speech-language and swallowing disorders
JELLA VISHNU DURGA PRASAD
 
EXCRETION-STRUCTURE OF NEPHRON,URINE FORMATION
raviralanaresh2
 
Cybersecurity: How to Protect your Digital World from Hackers
vaidikpanda4
 
LDP-2 UNIT 4 Presentation for practical.pptx
abhaypanchal2525
 
Applied-Statistics-1.pptx hardiba zalaaa
hardizala899
 
Introduction to Probability(basic) .pptx
purohitanuj034
 
Virus sequence retrieval from NCBI database
yamunaK13
 
Sonnet 130_ My Mistress’ Eyes Are Nothing Like the Sun By William Shakespear...
DhatriParmar
 
ENGLISH 8 WEEK 3 Q1 - Analyzing the linguistic, historical, andor biographica...
OliverOllet
 
Dakar Framework Education For All- 2000(Act)
santoshmohalik1
 
Python-Application-in-Drug-Design by R D Jawarkar.pptx
Rahul Jawarkar
 
YSPH VMOC Special Report - Measles Outbreak Southwest US 7-20-2025.pptx
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
 
How to Close Subscription in Odoo 18 - Odoo Slides
Celine George
 
Virat Kohli- the Pride of Indian cricket
kushpar147
 
Artificial Intelligence in Gastroentrology: Advancements and Future Presprec...
AyanHossain
 
Cleaning Validation Ppt Pharmaceutical validation
Ms. Ashatai Patil
 

matlab_tutorial.ppt

  • 1. Tutorial on Matlab Basics EECS 639 August 31, 2016
  • 2. Matlab Basics • To start Matlab: Select MATLAB on the menu (if using Windows). Type “matlab” on the command line (if using Linux).
  • 3. Getting Help and Looking Up Functions • To get help on a function type “help function_name”, e.g., “help plot”. • To find a topic, type “lookfor topic”, e.g., “lookfor matrix”
  • 4. Matlab’s Workspace • who, whos – current workspace vars. • save – save workspace vars to *.mat file. • load – load variables from *.mat file. • clear all – clear workspace vars. • close all – close all figures • clc – clear screen • clf – clear figure
  • 5. Basic Commands • % used to denote a comment • ; suppresses display of value (when placed at end of a statement) • ... continues the statement on next line • eps machine epsilon • inf infinity • NaN not-a number, e.g., 0/0.
  • 6. Numbers • To change format of numbers: format long, format short, etc. See “help format”. • Mathematical functions: sqrt(x), exp(x), cos(x), sin(x), sum(x), etc. • Operations: +, -, *, / • Constants: pi, exp(1), etc.
  • 7. Arrays and Matrices • v = [-2 3 0 4.5 -1.5]; % length 5 row vector. • v = v’; % transposes v. • v(1); % first element of v. • v(2:4); % entries 2-4 of v. • v([3,5]); % returns entries 3 & 5. • v=[4:-1:2]; % same as v=[4 3 2]; • a=1:3; b=2:3; c=[a b];  c = [1 2 3 2 3];
  • 8. Arrays and Matrices (2) • x = linspace(-pi,pi,10); % creates 10 linearly-spaced elements from –pi to pi. • logspace is similar. • A = [1 2 3; 4 5 6]; % creates 2x3 matrix • A(1,2) % the element in row 1, column 2. • A(:,2) % the second column. • A(2,:) % the second row.
  • 9. Arrays and Matrices (3) • A+B, A-B, 2*A, A*B % matrix addition, matrix subtraction, scalar multiplication, matrix multiplication • A.*B % element-by-element mult. • A’ % transpose of A (complex- conjugate transpose) • det(A) % determinant of A
  • 10. Creating special matrices • diag(v) % change a vector v to a diagonal matrix. • diag(A) % get diagonal of A. • eye(n) % identity matrix of size n. • zeros(m,n) % m-by-n zero matrix. • ones(m,n) % m*n matrix with all ones.
  • 11. Logical Conditions • ==, <, >, <=, >=, ~= (not equal), ~ (not) • & (element-wise logical and), | (or) • find(‘condition’) – Return indices of A’s elements that satisfies the condition. • Example: A = [7 6 5; 4 3 2]; find (‘A == 3’); --> returns 5.
  • 12. Solving Linear Equations • A = [1 2 3; 2 5 3; 1 0 8]; • b = [2; 1; 0]; • x = inv(A)*b; % solves Ax=b if A is invertible. (Note: This is a BAD way to solve the equations!!! It’s unstable and inefficient.) • x = Ab; % solves Ax = b. (Note: This way is better, but we’ll learn how to program methods to solve Ax=b.) Do NOT use either of these commands in your codes!
  • 13. More matrix/vector operations • length(v) % determine length of vector. • size(A) % determine size of matrix. • rank(A) % determine rank of matrix. • norm(A), norm(A,1), norm(A,inf) % determine 2-norm, 1-norm, and infinity-norm of A. • norm(v) % compute vector 2-norm.
  • 14. For loops • x = 0; for i=1:2:5 % start at 1, increment by 2 x = x+i; % end with 5. end This computes x = 0+1+3+5=9.
  • 15. While loops • x=7; while (x > = 0) x = x-2; end; This computes x = 7-2-2-2-2 = -1.
  • 16. If statements • if (x == 3) disp(‘The value of x is 3.’); elseif (x == 5) disp(‘The value of x is 5.’); else disp(‘The value of x is not 3 or 5.’); end;
  • 17. Switch statement • switch face case {1} disp(‘Rolled a 1’); case {2} disp(‘Rolled a 2’); otherwise disp(‘Rolled a number >= 3’); end • NOTE: Unlike C, ONLY the SWITCH statement between the matching case and the next case, otherwise, or end are executed. (So breaks are unnecessary.)
  • 18. Break statements • break – terminates execution of for and while loops. For nested loops, it exits the innermost loop only.
  • 19. Vectorization • Because Matlab is an interpreted language, i.e., it is not compiled before execution, loops run slowly. • Vectorized code runs faster in Matlab. • Example: x=[1 2 3]; for i=1:3 Vectorized: x(i) = x(i)+5; VS. x = x+5; end;
  • 20. Graphics • x = linspace(-1,1,10); • y = sin(x); • plot(x,y); % plots y vs. x. • plot(x,y,’k-’); % plots a black line of y vs. x. • hold on; % put several plots in the same figure window. • figure; % open new figure window.
  • 21. Graphics (2) • subplot(m,n,1) % Makes an mxn array for plots. Will place plot in 1st position. X Here m = 2 and n = 3.
  • 22. Graphics (3) • plot3(x,y,z) % plot 2D function. • mesh(x_ax,y_ax,z_mat) – surface plot. • contour(z_mat) – contour plot of z. • axis([xmin xmax ymin ymax]) – change axes • title(‘My title’); - add title to figure; • xlabel, ylabel – label axes. • legend – add key to figure.
  • 26. File Input/Output • fid = fopen(‘in.dat’,’rt’); % open text file for reading. • v = fscanf(fid,’%lg’,10); % read 10 doubles from the text file. • fclose(fid); % close the file. • help textread; % formatted read. • help fprintf; % formatted write.
  • 27. Example Data File Sally Type1 12.34 45 Yes Joe Type2 23.54 60 No Bill Type1 34.90 12 No
  • 28. Read Entire Dataset fid = fopen(‘mydata.dat’, ‘r’); % open file for reading. % Read-in data from mydata.dat. [names,types,x,y,answer] = textread(fid,’%s%s%f%d%s’); fclose(fid); % close file.
  • 29. Read Partial Dataset fid = fopen(‘mydata.dat’, ‘r’); % open file for reading. % Read-in first column of data from mydata.dat. [names] = textread(fid,’%s %*s %*f %*d %*s’); fclose(fid); % close file.
  • 30. Read 1 Line of Data fid = fopen(‘mydata.dat’, ‘r’); % open file % for reading. % Read-in one line of data corresponding % to Joe’s entry. [name,type,x,y,answer] =… textread(fid,’%s%s%f%d%s’,1,… ’headerlines’,1); fclose(fid); % close file.
  • 31. Writing formatted data. % open file for writing. fid = fopen(‘out.txt’,’w’); % Write out Joe’s info to file. fprintf(fid,’%s %s %f %d… %sn’,name,type,x,y,answer); fclose(fid); % close the file.
  • 32. Keeping a record • To keep a record of your session, use the diary command: diary filename x = 3 diary off This will keep a diary called filename showing the value of x (your work for this session).
  • 33. Timing • Use tic, toc to determine the running time of an algorithm as follows: tic commands… toc This will give the elapsed time.
  • 34. Scripts and Functions • Two kinds of M-files: - Scripts, which do not accept input arguments or return output arguments. They operate on data in the workspace. - Functions, which can accept input arguments and return output arguments. Internal variables are local to the function.
  • 35. M-file functions • function [area,circum] = circle(r) % [area, circum] = circle(r) returns the % area and circumference of a circle % with radius r. area = pi*r^2; circum = 2*pi*r; • Save function in circle.m.
  • 36. M-file scripts • r = 7; [area,circum] = circle(r); % call our circle function. disp([‘The area of a circle having… radius ‘ num2str(r) ‘ is ‘… num2str(area)]); • Save the file as myscript.m.
  • 38. Interactive Example (1) • Write a Matlab program to compute the following sum ∑1/i2, for i=1, 2, …, 10 two different ways: 1. 1/1+1/4+…+1/100 2. 1/100+1/81+…+1/1.
  • 39. Solution % Forward summation forwardsum = 0; for i=1:10 forwardsum = forwardsum+1/(i^2); end; % Backward summation backwardsum = 0; for i=10:-1:1 backwardsum = backwardsum+1/(i^2); end;
  • 40. Interactive Example (2) • Write a Matlab function to multiply two n-by-n matrices A and B. (Do not use built-in functions.)
  • 41. Solution function [C] = matrix_multiply(A,B,n) C = zeros(n,n); for i=1:n for j=1:n for k=1:n C(i,j) = C(i,j) + A(i,k)*B(k,j); end; end; end; Can this code be written so that it runs faster? Hint: Use vectorization.
  • 42. Solution • Script to use for testing: n = 10; A = rand(n,n); B = rand(n,n); C = matrix_multiply(A,B,n);