SlideShare a Scribd company logo
1 of 95
Zen and the Art of
MatLab
DAMIAN GORDON
Introduction to MatLab
 MatLab is an interactive, matrix-based system for
numeric computation and visualisation
 MATrix LABoratory
 Used in image processing, image synthesis,
engineering simulation, etc.
References
 “Mastering MatLab” Duane
Hanselman, Bruce Littlefield
 “The MatLab Primer”
http://www.fi.uib.no/Fysisk/Teori/KU
RS/WRK/mat/mat.html
 “The MatLab FAQ”
http://www.isr.umd.edu/~austin/en
ce202.d/matlab-faq.html
Printed Circuit Board
Specific Bond Selected
Bond Shape Estimated
MATLAB Command
Window
To get started, type one of these: helpwin, helpdesk, or demo.
For product information, type tour or visit www.mathworks.com.
»
» help
HELP topics:
Creating Variables
>> varname = 12
varname =
12
>> SS = 56; N = 4; Tot_Num = SS + N
Tot_Num =
60
Operations
+ Addition
- Subtraction
* Multiplication
^ Power
 Division
/ Division
• Add vars
• Subtract vars
Multiplication
• Raise to the power
• Divide vars (A div B)
• Divide vars (B div A)
Creating Complex
Numbers
>> 3 + 2i
>> sqrt(9) + sin(0.5)*j
ans =
3.0000 + 0.4794i
Num = sqrt(9) + sin(0.5)*j
real(Num)
imag(Num)
Entering Matrices (1)
>> A = [1 2 3; 4 5 6; 7 8 9]
OR
>> A = [
1 2 3
4 5 6
7 8 9 ]
Entering Matrices (2)
 To create an NxM zero-filled matrix
>> zeros(N,M)
 To create a NxN zero-filled matrix
>> zeros(N)
 To create an NxM one-filled matrix
>> ones(N,M)
 To create a NxN one-filled matrix
>> ones(N)
Entering Matrices (3)
 To create an NxM randomly-filled
matrix (which is uniformly
distributed)
>> rand(N,M)
 To create an NxM randomly-filled
matrix (which is normally
distributed)
>> randn(N,M)
Complex Matrices
 To enter a complex matrix, you may do it in one
of two ways :
>> A = [1 2; 3 4] + i*[5 6;7 8]
OR
>> A = [1+5i 2+6i; 3+7i 4+8i]
MATLAB Command Window
» who
Your variables are:
a b c
» whos
Name Size Bytes Class
a 8x8 512 double array
b 9x9 648 double array
c 9x9 648 double array
Grand total is 226 elements using 1808 bytes
Matrix Addition
» A = [ 1 1 1 ; 2 2 2 ; 3 3 3]
» B = [3 3 3 ; 4 4 4 ; 5 5 5 ]
» A + B
ans =
4 4 4
6 6 6
8 8 8
Matrix Subtraction
» A = [ 1 1 1 ; 2 2 2 ; 3 3 3]
» B = [3 3 3 ; 4 4 4 ; 5 5 5 ]
» B - A
ans =
2 2 2
2 2 2
2 2 2
Matrix Multiplication
» A = [ 1 1 1 ; 2 2 2 ; 3 3 3]
» B = [3 3 3 ; 4 4 4 ; 5 5 5 ]
» A * B
ans =
12 12 12
24 24 24
36 36 36
Matrix - Power
» A ^ 2
ans =
6 6 6
12 12 12
18 18 18
» A ^ 3
ans =
36 36 36
72 72 72
108 108 108
Matrix Transpose
A =
1 1 1
2 2 2
3 3 3
» A'
ans =
1 2 3
1 2 3
1 2 3
Matrix Division
Left Division 
x = AB (is A*x=B)
>> A = rand(4)
>> B = rand(4)
>> C = A  B
=> A * C = B
Right Division /
x=A/B (is x*A=B)
>> A = rand(4)
>> B = rand(4)
>> C = A / B
=> C * A = B
Matrix Operations
+ Addition
- Subtraction
* Multiplication
^ Power
‘ Conjugate Transpose
 Left Division
/ Right Division
• Add matrices
• Subtract matrices
Matrix Multiplication
• Raise to the power
• Get transpose
• x = AB (is A*x=B)
• x=A/B (is x*A=B)
MatLab Operators
DAMIAN GORDON
Getting to Matlab
Magic Matrix
MAGIC Magic square.
MAGIC(N) is an N-by-N matrix constructed from the
integers
1 through N^2 with equal row, column, and diagonal sums.
Produces valid magic squares for N = 1,3,4,5,...
Identity Function
>> eye (4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Upper Triangle Matrix
» a = ones(5)
a =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
» triu(a)
ans =
1 1 1 1 1
0 1 1 1 1
0 0 1 1 1
0 0 0 1 1
0 0 0 0 1
Lower Triangle Matrix
» a = ones(5)
a =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
» tril(a)
ans =
1 0 0 0 0
1 1 0 0 0
1 1 1 0 0
1 1 1 1 0
1 1 1 1 1
Hilbert Matrix
» hilb(4)
ans =
1.0000 0.5000 0.3333 0.2500
0.5000 0.3333 0.2500 0.2000
0.3333 0.2500 0.2000 0.1667
0.2500 0.2000 0.1667 0.1429
Inverse Hilbert Matrix
» invhilb(4)
ans =
16 -120 240 -140
-120 1200 -2700 1680
240 -2700 6480 -4200
-140 1680 -4200 2800
Toeplitz matrix.
TOEPLITZ
TOEPLITZ(C,R) is a non-symmetric Toeplitz matrix
having C as its
first column and R as its first row.
TOEPLITZ(R) is a symmetric (or Hermitian) Toeplitz
matrix.
-> See also HANKEL
Summary of Functions
• magic
• eye(4)
• triu(4)
• tril(4)
• hilb(4)
• invhilb(4)
• toeplitz(4)
- magic matrix
- identity matrix
- upper triangle
- lower triangle
- hilbert matrix
- Inverse Hilbert matrix
- non-symmetric
Toeplitz matrix
Dot Operator
 A = magic(4); b=ones(4);
 A * B
 A.*B
 the dot operator performs element-by-element
operations, for “*”, “” and “/”
Concatenation
 To create a large matrix from a group of smaller
ones
 try
 A = magic(3)
 B = [ A, zeros(3,2) ; zeros(2,3), eye(2)]
 C = [A A+32 ; A+48 A+16]
 Try some of your own !!
Subscripts
 Row i and Column j of matrix A is denoted by A(i,j)
 A = Magic(4)
 try
 A(1,4) + A(2,4) + A(3,4) + A(4,4)
 try
 A(4,5)
The Colon Operator (1)
 This is one MatLab’s most important operators
 1:10 means the vector
 1 2 3 4 5 6 7 8 9 10
 100:-7:50
 100 93 86 79 72 65 58 51
 0:pi/4:pi
 0 0.7854 1.5708 2.3562 3.1416
The Colon Operator (2)
 The first K elements in the jth column is
 A(1:K, j)
 Sum(A(1:4, 4)) is the sum of the 4th column
or
 Sum(A(:, 4)) means the same
Deleting Rows and Columns (1)
• Create a temporary matrix X
• X=A;
• X(:, 2) = []
• Deleting a single element won’t result in a
matrix, so the following will return an error
• X(1,2) = []
Deleting Rows and Columns (2)
• However, using a single subscript, you can
delete
– a single element
– sequence of elements
So X(2:2:10) = []
gives
• x = 16 9 2 7 13 12 1
The ‘FIND’ Command (1)
>> x = -3:3
x =
-3 -2 -1 0 1 2 3
K = find(abs(x) > 1)
K =
1 2 6 7
The ‘FIND’ Command (2)
A = [ 1 2 3 ; 4 5 6 ; 7 8 9]
[i, j] = find (A > 5)
i =
3
3
2
3
j =
1
2
3
3
Special Variables
• ans
• pi
• eps
• flops
• inf
• NaN
• i,j
• why
- default name for results
- pi
- “help eps”
- count floating point ops
- Infinity, e.g. 1/0
- Not a number, e.g. 0/0
- root minus one
- why not ?
LOGO Command
The ‘PLOT’ Command (1)
>> X = linspace(0, 2*pi, 30);
>> Y = sin(X);
>> plot(X,Y)
>> Z = cos(X);
>> plot(X,Y,X,Z);
The ‘PLOT’ Command (2)
>> W = [Y ; Z]
>> plot (X,W)
Rotate by 90 degrees
>> plot(W,X)
PLOT Options
>> plot(X,Y,’g:’)
>> plot(X,Y,’r-’)
>> plot(X,Y,’ko’)
>> plot(X,Y,’g:’,X,Z,’r-’,X,Y,’wo’,X,Z,’c+’);
PLOT Options
>> grid on
>> grid off
>> xlabel(‘this is the x axis’);
>> ylabel(‘this is the y axis’);
>> title(‘Title of Graph’);
>> text(2.5, 0.7, ’sin(x)’);
>> legend(‘sin(x)’, ‘cos(x)’)
SUBPLOT Command
 Subplot(m,n,p)
 creates a m-by-n matrix in and plots in the pth plane.
subplot(2,2,1)
plot(X,Y)
subplot(2,2,2)
plot(X,Z)
subplot(2,2,3)
plot( X,Y,X,Z)
subplot(2,2,4)
plot(W,X)
Specialised matrices
• compan
• gallery
• hadamard
• hankel
• pascal
• rosser
• vander
• wilkinson
• Companion matrix
• Higham test matrices
• Hadamard matrix
• Hankel matrix
• Pascal matrix.
• Classic symmetric
eigenvalue test problem
• Vandermonde matrix
• Wilkinson's eigenvalue
test matrix
Polynomials
Polynomials are represented as
row vectors with its coefficients in
descending order, e.g.
X4
- 12X3
+ 0X2
+25X + 116
p = [1 -12 0 25 116]
Polynomials
The roots of a polynomial are found as follows
r = roots(p)
roots are represented as a column vector
Polynomials
Generating a polynomial from its roots
polyans = poly(r)
includes imaginary bits due to rounding
mypolyans = real(polyans)
Polynomial Addition/Sub
 a = [1 2 3 4]
 b = [1 4 9 16]
 c = a + b
 d = b - a
Polynomial Addition/Sub
 What if two polynomials of different order ?
X3
+ 2X2
+3X + 4
X6
+ 6X5
+ 20X4
- 52X3
+ 81X2
+96X + 84
 a = [1 2 3 4]
 e = [1 6 20 52 81 96 84]
 f = e + [0 0 0 a] or f = e + [zeros(1,3) a]
Polynomial Multiplication
 a = [1 2 3 4]
 b = [1 4 9 16]
Perform the convolution of two arrays !
 g = conv(a,b)
g =
1 6 20 50 75 84 64
Polynomial Division
 a = [1 2 3 4]
 g = [1 6 20 50 75 84 64]
Perform the deconvolution of two arrays !
[q,r] = deconv(g, a)
q = {quotient}
1 4 9 16
r = {remainder}
0 0 0 0 0 0 0 0
Polynomial Differentiation
 f = [1 6 20 48 69 72 44]
 h = polyder(f)
h =
6 30 80 144 138 72
Polynomial Evaluation
x = linspace(-1,3)
p = [1 4 -7 -10]
v = polyval(p,x)
plot (x,v), title(‘Graph of P’)
Rational Polynomials
 Rational polynomials, seen in Fourier, Laplace and
Z transforms
 We represent them by their numerator and
denominator polynomials
 we can use residue to perform a partial fraction
expansion
 We can use polyder with two inputs to
differentiate rational polynomials
Data Analysis Functions (1)
 corrcoef(x)
 cov(x)
 cplxpair(x)
 cross(x,y)
 cumprod(x)
 cumsum(x)
 del2(A)
 diff(x)
 dot(x,y)
 gradient(Z, dx, dy)
 Correlation coefficients
 Covariance matrix
 complex conjugate
pairs
 vector cross product
 cumulative prod of
cols
 cumulative sum of cols
 five-point discrete
Laplacian
 diff between elements
 vector dot product
 approximate gradient
Data Analysis Functions (2)
 histogram(x)
 max(x), max(x,y)
 mean(x)
 median(x)
 min(x), min(x,y)
 prod(x)
 sort(x)
 std(x)
 subspace(A,B)
 sum(x)
 Histogram or bar
chart
 max component
 mean of cols
 median of cols
 minimum component
 product of elems in
col
 sort cols (ascending)
 standard dev of cols
 angle between
subspaces
 sum of elems per col
Symbolic Math Toolbox
Symbolic Expressions
 ‘1/(2*x^n)’
 cos(x^2) - sin(x^2)
 M = sym(‘[a , b ; c , d]’)
 f = int(‘x^3 / sqrt(1 - x)’, ‘a’, ‘b’)
Symbolic Expressions
diff(‘cos(x)’)
ans =
-sin(x)
det(M)
ans =
a*d - b * c
Symbolic Functions
 numden(m) - num & denom of polynomial
 symadd(f,g) - add symbolic polynomials
 symsub(f,g) - sub symbolic polynomials
 symmul(f,g) - mult symbolic polynomials
 symdiv(f,g) - div symbolic polynomials
 sympow(f,’3*x’) - raise f^3
Advanced Operations
 f = ‘1/(1+x^2)’
 g = ‘sin(x)’
compose(f,g) % f(g(x))
ans=
1/(1+sin(x)^2)
Advanced Operations
• finverse(x^2)
ans =
x^(1/2)
• symsum(‘(2*n - 1) ^ 2’, 1, ‘n’)
ans =
11/3*n + 8/3-4*(n+1)^2 + 4/3*(n+1)^3
Symbolic Differentiation
f = ‘a*x^3 + x^2 + b*x - c’
diff(f) % by default wrt x
ans =
3*a^2 + 2*x + b
diff(f, ‘a’) % wrt a
ans =
x^3
diff(f,’a’,2) % double diff wrt a
ans =
0
Symbolic Integration
f = sin(s+2*x)
int(f)
ans =
-1/2*cos(s+2*x)
int(f,’s’)
ans =
-cos(s+2*x)
int(f, ‘s’, pi/2,pi)
ans=
-cos(s)
Comments &Punctuation (1)
• All text after a percentage sign (%) is
ignored
>> % this is a comment
• Multiple commands can be placed on one
line separated by commas (,)
>> A = magic(4), B = ones(4), C = eye(4)
Comments &Punctuation (2)
• A semicolon may be also used, either after a
single command or multiple commands
>> A = magic(4); B = ones(4); C = eye(4);
• Ellipses (…) indicate a statement is
continued on the next line
A = B/…
C
SAVE Command (1)
>> save
• Store all the variables in binary format in a file
called matlab.mat
>> save fred
• Store all the variables in binary format in a file
called fred.mat
• >> save a b d fred
• Store the variables a, b and d in fred.mat
SAVE Command (2)
>> save a b d fred -ascii
 Stores the variables a, b and d in a
file called fred.mat in 8-bit ascii
format
>> save a b d fred -ascii -double
 Stores the variables a, b and d in a
file called fred.mat in 16-bit ascii
format
Load Command
• Create a text file called mymatrix.dat with
– 16.0 3.0 2.0 13.0
– 5.0 10.0 11.0 8.0
– 9.0 6.0 7.0 12.0
– 4.0 15.0 14.0 1.0
• “load mymatrix.dat”, create variable
mymatrix
M-Files
• To store your own MatLab commands in a
file, create it as a text file and save it with a
name that ends with “.m”
• So mymatrix.m
A = […
16.0 3.0 2.0 13.0
5.0 10.0 11.0 8.0
9.0 6.0 7.0 12.0
4.0 15.0 14.0 1.0];
• type mymatrix
IF Condition
if condition
{commands}
end
If x = 2
output = ‘x is even’
end
WHILE Loop
while condition
{commands}
end
X = 10;
count = 0;
while x > 2
x = x / 2;
count = count +
1;
end
FOR Loop
for x=array
{commands}
end
for n = 1:10
x(n) = sin(n);
end
A = zeros(5,5); %
prealloc
for n = 1:5
for m = 5:-1:1
A(n,m) = n^2 + m^2;
end
disp(n)
end
Creating a function
function a = gcd(a,b)
% GCD Greatest common divisor
% gcd(a,b) is the greatest common divisor of
% the integers a and b, not both zero.
a = round(abs(a)); b = round(abs(b));
if a == 0 & b == 0
error('The gcd is not defined when both numbers are zero')
else
while b ~= 0
r = rem(a,b);
a = b; b = r;
end
end
Quick Exercise (!)
 Consider Polynomial Addition again :
how would you write a program that takes in two
polynomials and irrespective of their sizes it adds
the polynomials together ? Given that the
function length(A) returns the length of a vector.
Answers on a postcard to : dgordon@maths.kst.dit.ie
oh, and while you’re here anyhow, if you have a
browser open, please go to the following sites :
http://www.the hungersite.com
http://www.hitsagainsthunger.com
Creating Programs
Title : Program.m
function out = program(inputs)
% PROGRAM
<code>
Know Thyself
 Where am I ?
 pwd
 Get me onto the hard disk
 cd C:
 Where am I now ?
 pwd
 Get me to where I know
 cd ..
Quick Answer (!)
function c = mypoly(a,b)
% MYPOLY Add two polynomials of variable lengths
% mypoly(a,b) add the polynomial A to the polynomial
% B, even if they are of different length
%
% Author: Damian Gordon
% Date : 3/5/2001
% Mod'd : x/x/2001
%
c = [zeros(1,length(b) - length(a)) a] + [zeros(1, length(a) -
length(b)) b];
Recursion
function b = bart(a)
%BART The Bart Simpson program writes on the
blackboard
% program, Bart writes the message a few times
% and then goes home to see the Simpsons
if a == 1
disp('I will not....');
else
disp('I will not skateboard in the halls');
bart(a - 1);
end
Curve Fitting
 What is the best fit ?
 In this case least squares curve fit
 What curve should be used ?
 It depends...
POLYFIT : Curve Fitting
 polyfit(x,y,n) - fit a polynomial
 x,y - data points describing the curve
 n - polynomial order
 n = 1 -- linear regression
 n = 2 -- quadratic regression
Curve Fitting Example
x = [0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1];
y = [-.447 1.978 3.28 6.16 7.08 7.34 7.66
9.56 9.48 9.30 11.2];
polyfit(x,y,n)
 n = 1
p = 10.3185 1.4400
 n = 2
p = -9.8108 20.1293 -0.0317
y = -9.8108x2
+ 20.1293x - 0.0317
Curve Fitting Example
xi = linspace(0,1,100);
z = polyval(p,xi)
plot(x,y,'o',x,y,xi,z,':');
Interpolation - 1D
 t = interp1(x,y,.75)
t =
9.5200
also
 interp1(x,y,.75,’spline’)
 interp1(x,y,.75,’cubic’)
Interpolation - 2D
 interp2(x,y,Z,xi,yi,TYPE)
TYPE =
'nearest' - nearest neighbor interpolation
'linear' - bilinear interpolation
'cubic' - bicubic interpolation
'spline' - spline interpolation
Fourier Functions
 fft
 fft2
 ifft
 ifft2
 filter
 filter2
 fftshift
 Fast fourier
transform
 2-D fft
 Inverse fft
 2-D Inverse fft
 Discrete time
filter
 2-D discrete tf
 shift FFT results so -ve
freqs appear first
Tensors
 See ‘Programs’
 ‘Tensors’
 ‘Tensors.html’
3D Graphics
T = 0:pi/50:10*pi;
plot3(sin(t), cos(t), t);
3D Graphics
title('Helix'), xlabel('sin(t)'),
ylabel('cos(t)'), zlabel('t')
grid
3D Graphics
 Rotate view by elevation and azimuth
view(az, el);
view(-37.5, 60);

More Related Content

What's hot

Matlab for beginners, Introduction, signal processing
Matlab for beginners, Introduction, signal processingMatlab for beginners, Introduction, signal processing
Matlab for beginners, Introduction, signal processingDr. Manjunatha. P
 
Matlab Functions
Matlab FunctionsMatlab Functions
Matlab FunctionsUmer Azeem
 
Matlab Introduction
Matlab IntroductionMatlab Introduction
Matlab IntroductionDaniel Moore
 
Introduction to MATLAB
Introduction to MATLABIntroduction to MATLAB
Introduction to MATLABAshish Meshram
 
Introduction to Matlab
Introduction to MatlabIntroduction to Matlab
Introduction to Matlabaman gupta
 
Basic operators in matlab
Basic operators in matlabBasic operators in matlab
Basic operators in matlabrishiteta
 
Matlab matrices and arrays
Matlab matrices and arraysMatlab matrices and arrays
Matlab matrices and arraysAmeen San
 
Introduction to MatLab programming
Introduction to MatLab programmingIntroduction to MatLab programming
Introduction to MatLab programmingDamian T. Gordon
 
Introduction to matlab lecture 1 of 4
Introduction to matlab lecture 1 of 4Introduction to matlab lecture 1 of 4
Introduction to matlab lecture 1 of 4Randa Elanwar
 
An Introduction to MATLAB for beginners
An Introduction to MATLAB for beginnersAn Introduction to MATLAB for beginners
An Introduction to MATLAB for beginnersMurshida ck
 
Matrix operations in MATLAB
Matrix operations in MATLABMatrix operations in MATLAB
Matrix operations in MATLABSaloni Singhal
 
Brief Introduction to Matlab
Brief  Introduction to MatlabBrief  Introduction to Matlab
Brief Introduction to MatlabTariq kanher
 
Basics of matlab
Basics of matlabBasics of matlab
Basics of matlabAnil Maurya
 
MATLAB Basics-Part1
MATLAB Basics-Part1MATLAB Basics-Part1
MATLAB Basics-Part1Elaf A.Saeed
 
Importance of matlab
Importance of matlabImportance of matlab
Importance of matlabkrajeshk1980
 
Introduction to Matlab
Introduction to MatlabIntroduction to Matlab
Introduction to MatlabAmr Rashed
 
Basic matlab and matrix
Basic matlab and matrixBasic matlab and matrix
Basic matlab and matrixSaidur Rahman
 

What's hot (20)

Matlab for beginners, Introduction, signal processing
Matlab for beginners, Introduction, signal processingMatlab for beginners, Introduction, signal processing
Matlab for beginners, Introduction, signal processing
 
Matlab Functions
Matlab FunctionsMatlab Functions
Matlab Functions
 
Matlab Introduction
Matlab IntroductionMatlab Introduction
Matlab Introduction
 
Introduction to MATLAB
Introduction to MATLABIntroduction to MATLAB
Introduction to MATLAB
 
Introduction to Matlab
Introduction to MatlabIntroduction to Matlab
Introduction to Matlab
 
Basic operators in matlab
Basic operators in matlabBasic operators in matlab
Basic operators in matlab
 
Matlab matrices and arrays
Matlab matrices and arraysMatlab matrices and arrays
Matlab matrices and arrays
 
Introduction to MatLab programming
Introduction to MatLab programmingIntroduction to MatLab programming
Introduction to MatLab programming
 
Introduction to matlab lecture 1 of 4
Introduction to matlab lecture 1 of 4Introduction to matlab lecture 1 of 4
Introduction to matlab lecture 1 of 4
 
An Introduction to MATLAB for beginners
An Introduction to MATLAB for beginnersAn Introduction to MATLAB for beginners
An Introduction to MATLAB for beginners
 
Matrix operations in MATLAB
Matrix operations in MATLABMatrix operations in MATLAB
Matrix operations in MATLAB
 
Brief Introduction to Matlab
Brief  Introduction to MatlabBrief  Introduction to Matlab
Brief Introduction to Matlab
 
Matlab basic and image
Matlab basic and imageMatlab basic and image
Matlab basic and image
 
Basics of matlab
Basics of matlabBasics of matlab
Basics of matlab
 
MATLAB Basics-Part1
MATLAB Basics-Part1MATLAB Basics-Part1
MATLAB Basics-Part1
 
Importance of matlab
Importance of matlabImportance of matlab
Importance of matlab
 
Introduction to Matlab
Introduction to MatlabIntroduction to Matlab
Introduction to Matlab
 
MATLAB - Arrays and Matrices
MATLAB - Arrays and MatricesMATLAB - Arrays and Matrices
MATLAB - Arrays and Matrices
 
Matlab ppt
Matlab pptMatlab ppt
Matlab ppt
 
Basic matlab and matrix
Basic matlab and matrixBasic matlab and matrix
Basic matlab and matrix
 

Similar to Introduction to MATLAB

MATLAB-Introd.ppt
MATLAB-Introd.pptMATLAB-Introd.ppt
MATLAB-Introd.pptkebeAman
 
INTRODUCTION TO MATLAB presentation.pptx
INTRODUCTION TO MATLAB presentation.pptxINTRODUCTION TO MATLAB presentation.pptx
INTRODUCTION TO MATLAB presentation.pptxDevaraj Chilakala
 
Matlab level 1.pptx
Matlab level 1.pptxMatlab level 1.pptx
Matlab level 1.pptxAbanobGozef
 
Introduction to Matlab - Basic Functions
Introduction to Matlab - Basic FunctionsIntroduction to Matlab - Basic Functions
Introduction to Matlab - Basic Functionsjoellivz
 
INTRODUCTION TO MATLAB session with notes
  INTRODUCTION TO MATLAB   session with  notes  INTRODUCTION TO MATLAB   session with  notes
INTRODUCTION TO MATLAB session with notesInfinity Tech Solutions
 
Introduction to matlab
Introduction to matlabIntroduction to matlab
Introduction to matlabDnyanesh Patil
 
COMPANION TO MATRICES SESSION II.pptx
COMPANION TO MATRICES SESSION II.pptxCOMPANION TO MATRICES SESSION II.pptx
COMPANION TO MATRICES SESSION II.pptximman gwu
 
mat lab introduction and basics to learn
mat lab introduction and basics to learnmat lab introduction and basics to learn
mat lab introduction and basics to learnpavan373
 
Introduction to matlab
Introduction to matlabIntroduction to matlab
Introduction to matlabBilawalBaloch1
 
Matlab-free course by Mohd Esa
Matlab-free course by Mohd EsaMatlab-free course by Mohd Esa
Matlab-free course by Mohd EsaMohd Esa
 

Similar to Introduction to MATLAB (20)

MATLAB-Introd.ppt
MATLAB-Introd.pptMATLAB-Introd.ppt
MATLAB-Introd.ppt
 
Matlab1
Matlab1Matlab1
Matlab1
 
Matlab-1.pptx
Matlab-1.pptxMatlab-1.pptx
Matlab-1.pptx
 
INTRODUCTION TO MATLAB presentation.pptx
INTRODUCTION TO MATLAB presentation.pptxINTRODUCTION TO MATLAB presentation.pptx
INTRODUCTION TO MATLAB presentation.pptx
 
Matlab level 1.pptx
Matlab level 1.pptxMatlab level 1.pptx
Matlab level 1.pptx
 
Lec3
Lec3Lec3
Lec3
 
Introduction to Matlab - Basic Functions
Introduction to Matlab - Basic FunctionsIntroduction to Matlab - Basic Functions
Introduction to Matlab - Basic Functions
 
Learn Matlab
Learn MatlabLearn Matlab
Learn Matlab
 
Introduction to matlab
Introduction to matlabIntroduction to matlab
Introduction to matlab
 
Matlab
MatlabMatlab
Matlab
 
bobok
bobokbobok
bobok
 
INTRODUCTION TO MATLAB session with notes
  INTRODUCTION TO MATLAB   session with  notes  INTRODUCTION TO MATLAB   session with  notes
INTRODUCTION TO MATLAB session with notes
 
presentation.pptx
presentation.pptxpresentation.pptx
presentation.pptx
 
Introduction to matlab
Introduction to matlabIntroduction to matlab
Introduction to matlab
 
COMPANION TO MATRICES SESSION II.pptx
COMPANION TO MATRICES SESSION II.pptxCOMPANION TO MATRICES SESSION II.pptx
COMPANION TO MATRICES SESSION II.pptx
 
Mit6 094 iap10_lec03
Mit6 094 iap10_lec03Mit6 094 iap10_lec03
Mit6 094 iap10_lec03
 
mat lab introduction and basics to learn
mat lab introduction and basics to learnmat lab introduction and basics to learn
mat lab introduction and basics to learn
 
Introduction to matlab
Introduction to matlabIntroduction to matlab
Introduction to matlab
 
Matlab-free course by Mohd Esa
Matlab-free course by Mohd EsaMatlab-free course by Mohd Esa
Matlab-free course by Mohd Esa
 
Mat lab day 1
Mat lab day 1Mat lab day 1
Mat lab day 1
 

More from Damian T. Gordon

Universal Design for Learning, Co-Designing with Students.
Universal Design for Learning, Co-Designing with Students.Universal Design for Learning, Co-Designing with Students.
Universal Design for Learning, Co-Designing with Students.Damian T. Gordon
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesDamian T. Gordon
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud ComputingDamian T. Gordon
 
Evaluating Teaching: SECTIONS
Evaluating Teaching: SECTIONSEvaluating Teaching: SECTIONS
Evaluating Teaching: SECTIONSDamian T. Gordon
 
Evaluating Teaching: MERLOT
Evaluating Teaching: MERLOTEvaluating Teaching: MERLOT
Evaluating Teaching: MERLOTDamian T. Gordon
 
Evaluating Teaching: Anstey and Watson Rubric
Evaluating Teaching: Anstey and Watson RubricEvaluating Teaching: Anstey and Watson Rubric
Evaluating Teaching: Anstey and Watson RubricDamian T. Gordon
 
Designing Teaching: Pause Procedure
Designing Teaching: Pause ProcedureDesigning Teaching: Pause Procedure
Designing Teaching: Pause ProcedureDamian T. Gordon
 
Designing Teaching: ASSURE
Designing Teaching: ASSUREDesigning Teaching: ASSURE
Designing Teaching: ASSUREDamian T. Gordon
 
Designing Teaching: Laurilliard's Learning Types
Designing Teaching: Laurilliard's Learning TypesDesigning Teaching: Laurilliard's Learning Types
Designing Teaching: Laurilliard's Learning TypesDamian T. Gordon
 
Designing Teaching: Gagne's Nine Events of Instruction
Designing Teaching: Gagne's Nine Events of InstructionDesigning Teaching: Gagne's Nine Events of Instruction
Designing Teaching: Gagne's Nine Events of InstructionDamian T. Gordon
 
Designing Teaching: Elaboration Theory
Designing Teaching: Elaboration TheoryDesigning Teaching: Elaboration Theory
Designing Teaching: Elaboration TheoryDamian T. Gordon
 
Universally Designed Learning Spaces: Some Considerations
Universally Designed Learning Spaces: Some ConsiderationsUniversally Designed Learning Spaces: Some Considerations
Universally Designed Learning Spaces: Some ConsiderationsDamian T. Gordon
 

More from Damian T. Gordon (20)

Universal Design for Learning, Co-Designing with Students.
Universal Design for Learning, Co-Designing with Students.Universal Design for Learning, Co-Designing with Students.
Universal Design for Learning, Co-Designing with Students.
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
REST and RESTful Services
REST and RESTful ServicesREST and RESTful Services
REST and RESTful Services
 
Serverless Computing
Serverless ComputingServerless Computing
Serverless Computing
 
Cloud Identity Management
Cloud Identity ManagementCloud Identity Management
Cloud Identity Management
 
Containers and Docker
Containers and DockerContainers and Docker
Containers and Docker
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 
Introduction to ChatGPT
Introduction to ChatGPTIntroduction to ChatGPT
Introduction to ChatGPT
 
How to Argue Logically
How to Argue LogicallyHow to Argue Logically
How to Argue Logically
 
Evaluating Teaching: SECTIONS
Evaluating Teaching: SECTIONSEvaluating Teaching: SECTIONS
Evaluating Teaching: SECTIONS
 
Evaluating Teaching: MERLOT
Evaluating Teaching: MERLOTEvaluating Teaching: MERLOT
Evaluating Teaching: MERLOT
 
Evaluating Teaching: Anstey and Watson Rubric
Evaluating Teaching: Anstey and Watson RubricEvaluating Teaching: Anstey and Watson Rubric
Evaluating Teaching: Anstey and Watson Rubric
 
Evaluating Teaching: LORI
Evaluating Teaching: LORIEvaluating Teaching: LORI
Evaluating Teaching: LORI
 
Designing Teaching: Pause Procedure
Designing Teaching: Pause ProcedureDesigning Teaching: Pause Procedure
Designing Teaching: Pause Procedure
 
Designing Teaching: ADDIE
Designing Teaching: ADDIEDesigning Teaching: ADDIE
Designing Teaching: ADDIE
 
Designing Teaching: ASSURE
Designing Teaching: ASSUREDesigning Teaching: ASSURE
Designing Teaching: ASSURE
 
Designing Teaching: Laurilliard's Learning Types
Designing Teaching: Laurilliard's Learning TypesDesigning Teaching: Laurilliard's Learning Types
Designing Teaching: Laurilliard's Learning Types
 
Designing Teaching: Gagne's Nine Events of Instruction
Designing Teaching: Gagne's Nine Events of InstructionDesigning Teaching: Gagne's Nine Events of Instruction
Designing Teaching: Gagne's Nine Events of Instruction
 
Designing Teaching: Elaboration Theory
Designing Teaching: Elaboration TheoryDesigning Teaching: Elaboration Theory
Designing Teaching: Elaboration Theory
 
Universally Designed Learning Spaces: Some Considerations
Universally Designed Learning Spaces: Some ConsiderationsUniversally Designed Learning Spaces: Some Considerations
Universally Designed Learning Spaces: Some Considerations
 

Recently uploaded

Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4JOYLYNSAMANIEGO
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 

Recently uploaded (20)

Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 

Introduction to MATLAB

  • 1. Zen and the Art of MatLab DAMIAN GORDON
  • 2. Introduction to MatLab  MatLab is an interactive, matrix-based system for numeric computation and visualisation  MATrix LABoratory  Used in image processing, image synthesis, engineering simulation, etc.
  • 3. References  “Mastering MatLab” Duane Hanselman, Bruce Littlefield  “The MatLab Primer” http://www.fi.uib.no/Fysisk/Teori/KU RS/WRK/mat/mat.html  “The MatLab FAQ” http://www.isr.umd.edu/~austin/en ce202.d/matlab-faq.html
  • 7. MATLAB Command Window To get started, type one of these: helpwin, helpdesk, or demo. For product information, type tour or visit www.mathworks.com. » » help HELP topics:
  • 8. Creating Variables >> varname = 12 varname = 12 >> SS = 56; N = 4; Tot_Num = SS + N Tot_Num = 60
  • 9. Operations + Addition - Subtraction * Multiplication ^ Power Division / Division • Add vars • Subtract vars Multiplication • Raise to the power • Divide vars (A div B) • Divide vars (B div A)
  • 10. Creating Complex Numbers >> 3 + 2i >> sqrt(9) + sin(0.5)*j ans = 3.0000 + 0.4794i Num = sqrt(9) + sin(0.5)*j real(Num) imag(Num)
  • 11. Entering Matrices (1) >> A = [1 2 3; 4 5 6; 7 8 9] OR >> A = [ 1 2 3 4 5 6 7 8 9 ]
  • 12. Entering Matrices (2)  To create an NxM zero-filled matrix >> zeros(N,M)  To create a NxN zero-filled matrix >> zeros(N)  To create an NxM one-filled matrix >> ones(N,M)  To create a NxN one-filled matrix >> ones(N)
  • 13. Entering Matrices (3)  To create an NxM randomly-filled matrix (which is uniformly distributed) >> rand(N,M)  To create an NxM randomly-filled matrix (which is normally distributed) >> randn(N,M)
  • 14. Complex Matrices  To enter a complex matrix, you may do it in one of two ways : >> A = [1 2; 3 4] + i*[5 6;7 8] OR >> A = [1+5i 2+6i; 3+7i 4+8i]
  • 15. MATLAB Command Window » who Your variables are: a b c » whos Name Size Bytes Class a 8x8 512 double array b 9x9 648 double array c 9x9 648 double array Grand total is 226 elements using 1808 bytes
  • 16. Matrix Addition » A = [ 1 1 1 ; 2 2 2 ; 3 3 3] » B = [3 3 3 ; 4 4 4 ; 5 5 5 ] » A + B ans = 4 4 4 6 6 6 8 8 8
  • 17. Matrix Subtraction » A = [ 1 1 1 ; 2 2 2 ; 3 3 3] » B = [3 3 3 ; 4 4 4 ; 5 5 5 ] » B - A ans = 2 2 2 2 2 2 2 2 2
  • 18. Matrix Multiplication » A = [ 1 1 1 ; 2 2 2 ; 3 3 3] » B = [3 3 3 ; 4 4 4 ; 5 5 5 ] » A * B ans = 12 12 12 24 24 24 36 36 36
  • 19. Matrix - Power » A ^ 2 ans = 6 6 6 12 12 12 18 18 18 » A ^ 3 ans = 36 36 36 72 72 72 108 108 108
  • 20. Matrix Transpose A = 1 1 1 2 2 2 3 3 3 » A' ans = 1 2 3 1 2 3 1 2 3
  • 21. Matrix Division Left Division x = AB (is A*x=B) >> A = rand(4) >> B = rand(4) >> C = A B => A * C = B Right Division / x=A/B (is x*A=B) >> A = rand(4) >> B = rand(4) >> C = A / B => C * A = B
  • 22. Matrix Operations + Addition - Subtraction * Multiplication ^ Power ‘ Conjugate Transpose Left Division / Right Division • Add matrices • Subtract matrices Matrix Multiplication • Raise to the power • Get transpose • x = AB (is A*x=B) • x=A/B (is x*A=B)
  • 25. Magic Matrix MAGIC Magic square. MAGIC(N) is an N-by-N matrix constructed from the integers 1 through N^2 with equal row, column, and diagonal sums. Produces valid magic squares for N = 1,3,4,5,...
  • 26. Identity Function >> eye (4) ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
  • 27. Upper Triangle Matrix » a = ones(5) a = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 » triu(a) ans = 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1
  • 28. Lower Triangle Matrix » a = ones(5) a = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 » tril(a) ans = 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1
  • 29. Hilbert Matrix » hilb(4) ans = 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667 0.2500 0.2000 0.1667 0.1429
  • 30. Inverse Hilbert Matrix » invhilb(4) ans = 16 -120 240 -140 -120 1200 -2700 1680 240 -2700 6480 -4200 -140 1680 -4200 2800
  • 31. Toeplitz matrix. TOEPLITZ TOEPLITZ(C,R) is a non-symmetric Toeplitz matrix having C as its first column and R as its first row. TOEPLITZ(R) is a symmetric (or Hermitian) Toeplitz matrix. -> See also HANKEL
  • 32. Summary of Functions • magic • eye(4) • triu(4) • tril(4) • hilb(4) • invhilb(4) • toeplitz(4) - magic matrix - identity matrix - upper triangle - lower triangle - hilbert matrix - Inverse Hilbert matrix - non-symmetric Toeplitz matrix
  • 33. Dot Operator  A = magic(4); b=ones(4);  A * B  A.*B  the dot operator performs element-by-element operations, for “*”, “” and “/”
  • 34. Concatenation  To create a large matrix from a group of smaller ones  try  A = magic(3)  B = [ A, zeros(3,2) ; zeros(2,3), eye(2)]  C = [A A+32 ; A+48 A+16]  Try some of your own !!
  • 35. Subscripts  Row i and Column j of matrix A is denoted by A(i,j)  A = Magic(4)  try  A(1,4) + A(2,4) + A(3,4) + A(4,4)  try  A(4,5)
  • 36. The Colon Operator (1)  This is one MatLab’s most important operators  1:10 means the vector  1 2 3 4 5 6 7 8 9 10  100:-7:50  100 93 86 79 72 65 58 51  0:pi/4:pi  0 0.7854 1.5708 2.3562 3.1416
  • 37. The Colon Operator (2)  The first K elements in the jth column is  A(1:K, j)  Sum(A(1:4, 4)) is the sum of the 4th column or  Sum(A(:, 4)) means the same
  • 38. Deleting Rows and Columns (1) • Create a temporary matrix X • X=A; • X(:, 2) = [] • Deleting a single element won’t result in a matrix, so the following will return an error • X(1,2) = []
  • 39. Deleting Rows and Columns (2) • However, using a single subscript, you can delete – a single element – sequence of elements So X(2:2:10) = [] gives • x = 16 9 2 7 13 12 1
  • 40. The ‘FIND’ Command (1) >> x = -3:3 x = -3 -2 -1 0 1 2 3 K = find(abs(x) > 1) K = 1 2 6 7
  • 41. The ‘FIND’ Command (2) A = [ 1 2 3 ; 4 5 6 ; 7 8 9] [i, j] = find (A > 5) i = 3 3 2 3 j = 1 2 3 3
  • 42. Special Variables • ans • pi • eps • flops • inf • NaN • i,j • why - default name for results - pi - “help eps” - count floating point ops - Infinity, e.g. 1/0 - Not a number, e.g. 0/0 - root minus one - why not ?
  • 44. The ‘PLOT’ Command (1) >> X = linspace(0, 2*pi, 30); >> Y = sin(X); >> plot(X,Y) >> Z = cos(X); >> plot(X,Y,X,Z);
  • 45. The ‘PLOT’ Command (2) >> W = [Y ; Z] >> plot (X,W) Rotate by 90 degrees >> plot(W,X)
  • 46. PLOT Options >> plot(X,Y,’g:’) >> plot(X,Y,’r-’) >> plot(X,Y,’ko’) >> plot(X,Y,’g:’,X,Z,’r-’,X,Y,’wo’,X,Z,’c+’);
  • 47. PLOT Options >> grid on >> grid off >> xlabel(‘this is the x axis’); >> ylabel(‘this is the y axis’); >> title(‘Title of Graph’); >> text(2.5, 0.7, ’sin(x)’); >> legend(‘sin(x)’, ‘cos(x)’)
  • 48. SUBPLOT Command  Subplot(m,n,p)  creates a m-by-n matrix in and plots in the pth plane. subplot(2,2,1) plot(X,Y) subplot(2,2,2) plot(X,Z) subplot(2,2,3) plot( X,Y,X,Z) subplot(2,2,4) plot(W,X)
  • 49. Specialised matrices • compan • gallery • hadamard • hankel • pascal • rosser • vander • wilkinson • Companion matrix • Higham test matrices • Hadamard matrix • Hankel matrix • Pascal matrix. • Classic symmetric eigenvalue test problem • Vandermonde matrix • Wilkinson's eigenvalue test matrix
  • 50. Polynomials Polynomials are represented as row vectors with its coefficients in descending order, e.g. X4 - 12X3 + 0X2 +25X + 116 p = [1 -12 0 25 116]
  • 51. Polynomials The roots of a polynomial are found as follows r = roots(p) roots are represented as a column vector
  • 52. Polynomials Generating a polynomial from its roots polyans = poly(r) includes imaginary bits due to rounding mypolyans = real(polyans)
  • 53. Polynomial Addition/Sub  a = [1 2 3 4]  b = [1 4 9 16]  c = a + b  d = b - a
  • 54. Polynomial Addition/Sub  What if two polynomials of different order ? X3 + 2X2 +3X + 4 X6 + 6X5 + 20X4 - 52X3 + 81X2 +96X + 84  a = [1 2 3 4]  e = [1 6 20 52 81 96 84]  f = e + [0 0 0 a] or f = e + [zeros(1,3) a]
  • 55. Polynomial Multiplication  a = [1 2 3 4]  b = [1 4 9 16] Perform the convolution of two arrays !  g = conv(a,b) g = 1 6 20 50 75 84 64
  • 56. Polynomial Division  a = [1 2 3 4]  g = [1 6 20 50 75 84 64] Perform the deconvolution of two arrays ! [q,r] = deconv(g, a) q = {quotient} 1 4 9 16 r = {remainder} 0 0 0 0 0 0 0 0
  • 57. Polynomial Differentiation  f = [1 6 20 48 69 72 44]  h = polyder(f) h = 6 30 80 144 138 72
  • 58. Polynomial Evaluation x = linspace(-1,3) p = [1 4 -7 -10] v = polyval(p,x) plot (x,v), title(‘Graph of P’)
  • 59. Rational Polynomials  Rational polynomials, seen in Fourier, Laplace and Z transforms  We represent them by their numerator and denominator polynomials  we can use residue to perform a partial fraction expansion  We can use polyder with two inputs to differentiate rational polynomials
  • 60. Data Analysis Functions (1)  corrcoef(x)  cov(x)  cplxpair(x)  cross(x,y)  cumprod(x)  cumsum(x)  del2(A)  diff(x)  dot(x,y)  gradient(Z, dx, dy)  Correlation coefficients  Covariance matrix  complex conjugate pairs  vector cross product  cumulative prod of cols  cumulative sum of cols  five-point discrete Laplacian  diff between elements  vector dot product  approximate gradient
  • 61. Data Analysis Functions (2)  histogram(x)  max(x), max(x,y)  mean(x)  median(x)  min(x), min(x,y)  prod(x)  sort(x)  std(x)  subspace(A,B)  sum(x)  Histogram or bar chart  max component  mean of cols  median of cols  minimum component  product of elems in col  sort cols (ascending)  standard dev of cols  angle between subspaces  sum of elems per col
  • 63. Symbolic Expressions  ‘1/(2*x^n)’  cos(x^2) - sin(x^2)  M = sym(‘[a , b ; c , d]’)  f = int(‘x^3 / sqrt(1 - x)’, ‘a’, ‘b’)
  • 65. Symbolic Functions  numden(m) - num & denom of polynomial  symadd(f,g) - add symbolic polynomials  symsub(f,g) - sub symbolic polynomials  symmul(f,g) - mult symbolic polynomials  symdiv(f,g) - div symbolic polynomials  sympow(f,’3*x’) - raise f^3
  • 66. Advanced Operations  f = ‘1/(1+x^2)’  g = ‘sin(x)’ compose(f,g) % f(g(x)) ans= 1/(1+sin(x)^2)
  • 67. Advanced Operations • finverse(x^2) ans = x^(1/2) • symsum(‘(2*n - 1) ^ 2’, 1, ‘n’) ans = 11/3*n + 8/3-4*(n+1)^2 + 4/3*(n+1)^3
  • 68. Symbolic Differentiation f = ‘a*x^3 + x^2 + b*x - c’ diff(f) % by default wrt x ans = 3*a^2 + 2*x + b diff(f, ‘a’) % wrt a ans = x^3 diff(f,’a’,2) % double diff wrt a ans = 0
  • 69. Symbolic Integration f = sin(s+2*x) int(f) ans = -1/2*cos(s+2*x) int(f,’s’) ans = -cos(s+2*x) int(f, ‘s’, pi/2,pi) ans= -cos(s)
  • 70. Comments &Punctuation (1) • All text after a percentage sign (%) is ignored >> % this is a comment • Multiple commands can be placed on one line separated by commas (,) >> A = magic(4), B = ones(4), C = eye(4)
  • 71. Comments &Punctuation (2) • A semicolon may be also used, either after a single command or multiple commands >> A = magic(4); B = ones(4); C = eye(4); • Ellipses (…) indicate a statement is continued on the next line A = B/… C
  • 72. SAVE Command (1) >> save • Store all the variables in binary format in a file called matlab.mat >> save fred • Store all the variables in binary format in a file called fred.mat • >> save a b d fred • Store the variables a, b and d in fred.mat
  • 73. SAVE Command (2) >> save a b d fred -ascii  Stores the variables a, b and d in a file called fred.mat in 8-bit ascii format >> save a b d fred -ascii -double  Stores the variables a, b and d in a file called fred.mat in 16-bit ascii format
  • 74. Load Command • Create a text file called mymatrix.dat with – 16.0 3.0 2.0 13.0 – 5.0 10.0 11.0 8.0 – 9.0 6.0 7.0 12.0 – 4.0 15.0 14.0 1.0 • “load mymatrix.dat”, create variable mymatrix
  • 75. M-Files • To store your own MatLab commands in a file, create it as a text file and save it with a name that ends with “.m” • So mymatrix.m A = [… 16.0 3.0 2.0 13.0 5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0]; • type mymatrix
  • 76. IF Condition if condition {commands} end If x = 2 output = ‘x is even’ end
  • 77. WHILE Loop while condition {commands} end X = 10; count = 0; while x > 2 x = x / 2; count = count + 1; end
  • 78. FOR Loop for x=array {commands} end for n = 1:10 x(n) = sin(n); end A = zeros(5,5); % prealloc for n = 1:5 for m = 5:-1:1 A(n,m) = n^2 + m^2; end disp(n) end
  • 79. Creating a function function a = gcd(a,b) % GCD Greatest common divisor % gcd(a,b) is the greatest common divisor of % the integers a and b, not both zero. a = round(abs(a)); b = round(abs(b)); if a == 0 & b == 0 error('The gcd is not defined when both numbers are zero') else while b ~= 0 r = rem(a,b); a = b; b = r; end end
  • 80. Quick Exercise (!)  Consider Polynomial Addition again : how would you write a program that takes in two polynomials and irrespective of their sizes it adds the polynomials together ? Given that the function length(A) returns the length of a vector. Answers on a postcard to : dgordon@maths.kst.dit.ie oh, and while you’re here anyhow, if you have a browser open, please go to the following sites : http://www.the hungersite.com http://www.hitsagainsthunger.com
  • 81. Creating Programs Title : Program.m function out = program(inputs) % PROGRAM <code>
  • 82. Know Thyself  Where am I ?  pwd  Get me onto the hard disk  cd C:  Where am I now ?  pwd  Get me to where I know  cd ..
  • 83. Quick Answer (!) function c = mypoly(a,b) % MYPOLY Add two polynomials of variable lengths % mypoly(a,b) add the polynomial A to the polynomial % B, even if they are of different length % % Author: Damian Gordon % Date : 3/5/2001 % Mod'd : x/x/2001 % c = [zeros(1,length(b) - length(a)) a] + [zeros(1, length(a) - length(b)) b];
  • 84. Recursion function b = bart(a) %BART The Bart Simpson program writes on the blackboard % program, Bart writes the message a few times % and then goes home to see the Simpsons if a == 1 disp('I will not....'); else disp('I will not skateboard in the halls'); bart(a - 1); end
  • 85. Curve Fitting  What is the best fit ?  In this case least squares curve fit  What curve should be used ?  It depends...
  • 86. POLYFIT : Curve Fitting  polyfit(x,y,n) - fit a polynomial  x,y - data points describing the curve  n - polynomial order  n = 1 -- linear regression  n = 2 -- quadratic regression
  • 87. Curve Fitting Example x = [0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1]; y = [-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; polyfit(x,y,n)  n = 1 p = 10.3185 1.4400  n = 2 p = -9.8108 20.1293 -0.0317 y = -9.8108x2 + 20.1293x - 0.0317
  • 88. Curve Fitting Example xi = linspace(0,1,100); z = polyval(p,xi) plot(x,y,'o',x,y,xi,z,':');
  • 89. Interpolation - 1D  t = interp1(x,y,.75) t = 9.5200 also  interp1(x,y,.75,’spline’)  interp1(x,y,.75,’cubic’)
  • 90. Interpolation - 2D  interp2(x,y,Z,xi,yi,TYPE) TYPE = 'nearest' - nearest neighbor interpolation 'linear' - bilinear interpolation 'cubic' - bicubic interpolation 'spline' - spline interpolation
  • 91. Fourier Functions  fft  fft2  ifft  ifft2  filter  filter2  fftshift  Fast fourier transform  2-D fft  Inverse fft  2-D Inverse fft  Discrete time filter  2-D discrete tf  shift FFT results so -ve freqs appear first
  • 92. Tensors  See ‘Programs’  ‘Tensors’  ‘Tensors.html’
  • 93. 3D Graphics T = 0:pi/50:10*pi; plot3(sin(t), cos(t), t);
  • 95. 3D Graphics  Rotate view by elevation and azimuth view(az, el); view(-37.5, 60);