Top Banner
Zen and the Art of MatLab Damian Gordon
105

Introduction to MatLab programming

Nov 28, 2014

Download

Education

Damian Gordon

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introduction to MatLab programming

Zen and the Art of MatLab

Damian Gordon

Page 2: Introduction to MatLab programming

Hard work done by :

Daphne Gilbert &

Susan Lazarus

Page 3: Introduction to MatLab programming

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.

Page 4: Introduction to MatLab programming

References

• “Mastering MatLab” Duane Hanselman, Bruce Littlefield

• “The MatLab Primer” http://www.fi.uib.no/Fysisk/Teori/KURS/WRK/mat/mat.html

• “The MatLab FAQ” http://www.isr.umd.edu/~austin/ence202.d/matlab-faq.html

Page 5: Introduction to MatLab programming

Printed Circuit Board

Page 6: Introduction to MatLab programming

Specific Bond Selected

Page 7: Introduction to MatLab programming

Bond Shape Estimated

Page 8: Introduction to MatLab programming

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:

Page 9: Introduction to MatLab programming

Creating Variables

>> varname = 12

varname =

12

>> SS = 56; N = 4; Tot_Num = SS + N

Tot_Num =

60

Page 10: Introduction to MatLab programming

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)

Page 11: Introduction to MatLab programming

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)

Page 12: Introduction to MatLab programming

Entering Matrices (1)

>> A = [1 2 3; 4 5 6; 7 8 9]

OR

>> A = [

1 2 3

4 5 6

7 8 9 ]

Page 13: Introduction to MatLab programming

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)

Page 14: Introduction to MatLab programming

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)

Page 15: Introduction to MatLab programming

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]

Page 16: Introduction to MatLab programming

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

Page 17: Introduction to MatLab programming

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

Page 18: Introduction to MatLab programming

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

Page 19: Introduction to MatLab programming

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

Page 20: Introduction to MatLab programming

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

Page 21: Introduction to MatLab programming

Matrix Transpose

A =

1 1 1

2 2 2

3 3 3

» A'

ans =

1 2 3

1 2 3

1 2 3

Page 22: Introduction to MatLab programming

Matrix Division

Left Division \

x = A\B (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

Page 23: Introduction to MatLab programming

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 = A\B (is A*x=B)• x=A/B (is x*A=B)

Page 24: Introduction to MatLab programming

Philosophiae Naturalis Principia Matlabematica

Damian Gordon

Page 25: Introduction to MatLab programming

Getting to Matlab

Page 26: Introduction to MatLab programming

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,...

Page 27: Introduction to MatLab programming

Identity Function

>> eye (4)

ans =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Page 28: Introduction to MatLab programming

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

Page 29: Introduction to MatLab programming

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

Page 30: Introduction to MatLab programming

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

Page 31: Introduction to MatLab programming

Inverse Hilbert Matrix» invhilb(4)

ans =

16 -120 240 -140

-120 1200 -2700 1680

240 -2700 6480 -4200

-140 1680 -4200 2800

Page 32: Introduction to MatLab programming

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

Page 33: Introduction to MatLab programming

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

Page 34: Introduction to MatLab programming

Dot Operator

• A = magic(4); b=ones(4);

• A * B

• A.*B

• the dot operator performs element-by-element operations, for “*”, “\” and “/”

Page 35: Introduction to MatLab programming

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 !!

Page 36: Introduction to MatLab programming

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)

Page 37: Introduction to MatLab programming

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

Page 38: Introduction to MatLab programming

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

Page 39: Introduction to MatLab programming

matlABBA

Page 40: Introduction to MatLab programming

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

Page 41: Introduction to MatLab programming

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

Page 42: Introduction to MatLab programming

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) = []

Page 43: Introduction to MatLab programming

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

Page 44: Introduction to MatLab programming

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

Page 45: Introduction to MatLab programming

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

Page 46: Introduction to MatLab programming

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 ?

Page 47: Introduction to MatLab programming

LOGO Command

Page 48: Introduction to MatLab programming

The ‘PLOT’ Command (1)

>> X = linspace(0, 2*pi, 30);

>> Y = sin(X);

>> plot(X,Y)

>> Z = cos(X);

>> plot(X,Y,X,Z);

Page 49: Introduction to MatLab programming

The ‘PLOT’ Command (2)

>> W = [Y ; Z]

>> plot (X,W)

Rotate by 90 degrees

>> plot(W,X)

Page 50: Introduction to MatLab programming

The Meditations ofMatlab Aurelius

Page 51: Introduction to MatLab programming

The ‘PLOT’ Command (1)

>> X = linspace(0, 2*pi, 30);

>> Y = sin(X);

>> plot(X,Y)

>> Z = cos(X);

>> plot(X,Y,X,Z);

Page 52: Introduction to MatLab programming

The ‘PLOT’ Command (2)

>> W = [Y ; Z]

>> plot (X,W)

Rotate by 90 degrees

>> plot(W,X)

Page 53: Introduction to MatLab programming

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

Page 54: Introduction to MatLab programming

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

Page 55: Introduction to MatLab programming

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)

Page 56: Introduction to MatLab programming

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

Page 57: Introduction to MatLab programming

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]

Page 58: Introduction to MatLab programming

Polynomials

The roots of a polynomial are found as follows

r = roots(p)

roots are represented as a column vector

Page 59: Introduction to MatLab programming

Polynomials

Generating a polynomial from its roots

polyans = poly(r)

includes imaginary bits due to rounding

mypolyans = real(polyans)

Page 60: Introduction to MatLab programming

Polynomial Addition/Sub

• a = [1 2 3 4]

• b = [1 4 9 16]

• c = a + b

• d = b - a

Page 61: Introduction to MatLab programming

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]

Page 62: Introduction to MatLab programming

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

Page 63: Introduction to MatLab programming

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

Page 64: Introduction to MatLab programming

Polynomial Differentiation

• f = [1 6 20 48 69 72 44]

• h = polyder(f)

h =

6 30 80 144 138 72

Page 65: Introduction to MatLab programming

Polynomial Evaluation

x = linspace(-1,3)

p = [1 4 -7 -10]

v = polyval(p,x)

plot (x,v), title(‘Graph of P’)

Page 66: Introduction to MatLab programming

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

Page 67: Introduction to MatLab programming

An Anthropologist on Matlab

Page 68: Introduction to MatLab programming

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

Page 69: Introduction to MatLab programming

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

Page 70: Introduction to MatLab programming

Symbolic Math Toolbox

Page 71: Introduction to MatLab programming

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

Page 72: Introduction to MatLab programming

Symbolic Expressions

diff(‘cos(x)’)

ans =

-sin(x)

det(M)

ans =

a*d - b * c

Page 73: Introduction to MatLab programming

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

Page 74: Introduction to MatLab programming

Advanced Operations

• f = ‘1/(1+x^2)’

• g = ‘sin(x)’

compose(f,g) % f(g(x))

ans=

1/(1+sin(x)^2)

Page 75: Introduction to MatLab programming

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

Page 76: Introduction to MatLab programming

Symbolic Differentiationf = ‘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

Page 77: Introduction to MatLab programming

Symbolic Integrationf = 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)

Page 78: Introduction to MatLab programming

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)

Page 79: Introduction to MatLab programming

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

Page 80: Introduction to MatLab programming

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

Page 81: Introduction to MatLab programming

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

Page 82: Introduction to MatLab programming

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

Page 83: Introduction to MatLab programming

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.mA = […

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

Page 84: Introduction to MatLab programming

IF Condition

if condition {commands}end

If x = 2output = ‘x is even’end

Page 85: Introduction to MatLab programming

WHILE Loop

while condition {commands}end

X = 10;count = 0;while x > 2x = x / 2;count = count + 1;end

Page 86: Introduction to MatLab programming

FOR Loop

for x=array {commands}end

for n = 1:10x(n) = sin(n);end

A = zeros(5,5); % preallocfor n = 1:5for m = 5:-1:1A(n,m) = n^2 + m^2;enddisp(n)end

Page 87: Introduction to MatLab programming

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

Page 88: Introduction to MatLab programming

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 : [email protected]

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

Page 89: Introduction to MatLab programming

Flash Gordon and the Mud Men of Matlab

Page 90: Introduction to MatLab programming

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 : [email protected]

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

Page 91: Introduction to MatLab programming

Creating Programs

Title : Program.m

function out = program(inputs)

% PROGRAM

<code>

Page 92: Introduction to MatLab programming

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 ..

Page 93: Introduction to MatLab programming

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

Page 94: Introduction to MatLab programming

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

Page 95: Introduction to MatLab programming

Curve Fitting

• What is the best fit ?– In this case least squares curve fit

• What curve should be used ?– It depends...

Page 96: Introduction to MatLab programming

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

Page 97: Introduction to MatLab programming

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

Page 98: Introduction to MatLab programming

Curve Fitting Example

xi = linspace(0,1,100);

z = polyval(p,xi)

plot(x,y,'o',x,y,xi,z,':');

Page 99: Introduction to MatLab programming

Interpolation - 1D

• t = interp1(x,y,.75)t =

9.5200

also• interp1(x,y,.75,’spline’)• interp1(x,y,.75,’cubic’)

Page 100: Introduction to MatLab programming

Interpolation - 2D

• interp2(x,y,Z,xi,yi,TYPE)

TYPE =

'nearest' - nearest neighbor interpolation 'linear' - bilinear interpolation 'cubic' - bicubic interpolation 'spline' - spline interpolation

Page 101: Introduction to MatLab programming

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

Page 102: Introduction to MatLab programming

Tensors

• See ‘Programs’

• ‘Tensors’

• ‘Tensors.html’

Page 103: Introduction to MatLab programming

3D Graphics

T = 0:pi/50:10*pi;

plot3(sin(t), cos(t), t);

Page 104: Introduction to MatLab programming

3D Graphics

title('Helix'), xlabel('sin(t)'),

ylabel('cos(t)'), zlabel('t')

grid

Page 105: Introduction to MatLab programming

3D Graphics

• Rotate view by elevation and azimuth

view(az, el);

view(-37.5, 60);