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

PPT
Matlab Tutorial.ppt
PPT
matlab tutorial with separate function description and handson learning
PPTX
Introduction to Matlab and application.pptx
PPTX
Introduction to MATLAB Programming for Engineers
PDF
PDF
An Introduction to MATLAB with Worked Examples
PDF
MATLAB Programming
PPT
MATLAB-Introd.ppt
Matlab Tutorial.ppt
matlab tutorial with separate function description and handson learning
Introduction to Matlab and application.pptx
Introduction to MATLAB Programming for Engineers
An Introduction to MATLAB with Worked Examples
MATLAB Programming
MATLAB-Introd.ppt

Similar to matlab_tutorial.ppt (20)

PDF
Matlab lec1
PPT
Introduction of MatLab
PPT
Introduction to Matlab - Basic Functions
PPTX
From zero to MATLAB hero: Mastering the basics and beyond
PDF
Matlab for beginners, Introduction, signal processing
PDF
Malab tutorial
PPTX
intro2matlab-basic knowledge about Matlab.pptx
PDF
PPTX
presentation.pptx
PPT
Matlab Basic Tutorial
PPT
Matlab1
DOC
Matlab tut3
PDF
A complete introduction on matlab and matlab's projects
PPT
MatlabIntro1234.ppt.....................
PDF
Lecture 01 variables scripts and operations
PPT
MatlabIntro (1).ppt
PDF
Matlab booklet
PDF
Matlab ch1 intro
PPT
Matlab anilkumar
PPTX
MATLAB Workshop yugjjnhhasfhlhhlllhl.pptx
Matlab lec1
Introduction of MatLab
Introduction to Matlab - Basic Functions
From zero to MATLAB hero: Mastering the basics and beyond
Matlab for beginners, Introduction, signal processing
Malab tutorial
intro2matlab-basic knowledge about Matlab.pptx
presentation.pptx
Matlab Basic Tutorial
Matlab1
Matlab tut3
A complete introduction on matlab and matlab's projects
MatlabIntro1234.ppt.....................
Lecture 01 variables scripts and operations
MatlabIntro (1).ppt
Matlab booklet
Matlab ch1 intro
Matlab anilkumar
MATLAB Workshop yugjjnhhasfhlhhlllhl.pptx
Ad

Recently uploaded (20)

PDF
Pre independence Education in Inndia.pdf
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PPTX
GDM (1) (1).pptx small presentation for students
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
Complications of Minimal Access Surgery at WLH
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Cell Types and Its function , kingdom of life
PPTX
master seminar digital applications in india
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
Pre independence Education in Inndia.pdf
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
GDM (1) (1).pptx small presentation for students
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Complications of Minimal Access Surgery at WLH
Abdominal Access Techniques with Prof. Dr. R K Mishra
Module 4: Burden of Disease Tutorial Slides S2 2025
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Final Presentation General Medicine 03-08-2024.pptx
TR - Agricultural Crops Production NC III.pdf
Supply Chain Operations Speaking Notes -ICLT Program
Cell Types and Its function , kingdom of life
master seminar digital applications in india
102 student loan defaulters named and shamed – Is someone you know on the list?
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);