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

PDF
MATLAB Programming
PPTX
Introduction to MATLAB Programming for Engineers
PPTX
Introduction to Matlab and application.pptx
PPT
MatlabIntro (1).ppt
PPTX
intro2matlab-basic knowledge about Matlab.pptx
PDF
Matlab-free course by Mohd Esa
PPT
Introduction to Matlab - Basic Functions
PPTX
Introduction to matlab
MATLAB Programming
Introduction to MATLAB Programming for Engineers
Introduction to Matlab and application.pptx
MatlabIntro (1).ppt
intro2matlab-basic knowledge about Matlab.pptx
Matlab-free course by Mohd Esa
Introduction to Matlab - Basic Functions
Introduction to matlab

Similar to matlab_tutorial.ppt (20)

PDF
Matlab lec1
PPT
WIDI FREAK MANUSIA SETENGAH EDIOTDAN LEMBOT
PDF
Dsp lab _eec-652__vi_sem_18012013
PDF
Dsp lab _eec-652__vi_sem_18012013
PPT
MatlabIntro1234.ppt.....................
PPTX
Matlab ppt
PPT
Introduction to Matlab.ppt
PPT
Matlab intro
PPT
MatlabIntro.ppt
PPT
MatlabIntro.ppt
PPT
MatlabIntro.ppt
PPT
MatlabIntro.ppt
PPT
WIDI ediot autis dongok part 1.ediot lu lemot lu setan lu
PPTX
MATLAB Workshop for project and research
PPTX
1. Introduction to Computing - MATLAB.pptx
PPT
Matlab Tutorial.ppt
PPTX
Mat lab workshop
PPT
Matlab1
PDF
PPTX
Matlab Functions for programming fundamentals
Matlab lec1
WIDI FREAK MANUSIA SETENGAH EDIOTDAN LEMBOT
Dsp lab _eec-652__vi_sem_18012013
Dsp lab _eec-652__vi_sem_18012013
MatlabIntro1234.ppt.....................
Matlab ppt
Introduction to Matlab.ppt
Matlab intro
MatlabIntro.ppt
MatlabIntro.ppt
MatlabIntro.ppt
MatlabIntro.ppt
WIDI ediot autis dongok part 1.ediot lu lemot lu setan lu
MATLAB Workshop for project and research
1. Introduction to Computing - MATLAB.pptx
Matlab Tutorial.ppt
Mat lab workshop
Matlab1
Matlab Functions for programming fundamentals
Ad

Recently uploaded (20)

PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
Complications of Minimal Access Surgery at WLH
PDF
Pre independence Education in Inndia.pdf
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
Sports Quiz easy sports quiz sports quiz
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
01-Introduction-to-Information-Management.pdf
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PPTX
Pharma ospi slides which help in ospi learning
PDF
RMMM.pdf make it easy to upload and study
PDF
Classroom Observation Tools for Teachers
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PDF
Insiders guide to clinical Medicine.pdf
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
GDM (1) (1).pptx small presentation for students
PDF
Computing-Curriculum for Schools in Ghana
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
Pharmacology of Heart Failure /Pharmacotherapy of CHF
STATICS OF THE RIGID BODIES Hibbelers.pdf
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
Complications of Minimal Access Surgery at WLH
Pre independence Education in Inndia.pdf
Renaissance Architecture: A Journey from Faith to Humanism
Sports Quiz easy sports quiz sports quiz
Supply Chain Operations Speaking Notes -ICLT Program
01-Introduction-to-Information-Management.pdf
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Pharma ospi slides which help in ospi learning
RMMM.pdf make it easy to upload and study
Classroom Observation Tools for Teachers
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
Insiders guide to clinical Medicine.pdf
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
VCE English Exam - Section C Student Revision Booklet
GDM (1) (1).pptx small presentation for students
Computing-Curriculum for Schools in Ghana
Module 4: Burden of Disease Tutorial Slides S2 2025
Ad

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