introduction to matlab programming

105
Zen and the Art of MatLab Damian Gordon

Upload: damian-gordon

Post on 28-Nov-2014

2.288 views

Category:

Education


10 download

DESCRIPTION

 

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