matlab

Post on 17-May-2015

2.273 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

matlab study

TRANSCRIPT

11

C Language is Simplest. C Language is Simplest.

22

What may be the size of the program for What may be the size of the program for writing a C code that generates sin wave?

33

But we can do the same by only three But we can do the same by only three lines.

44x=0.1:0.1:10;

b=sin(x);

Plot(x,b)

------ no

computational

complexity

55

That is the beauty we have as an engineer. engineer.

Name is

MATLAB

66

Recent Trends in Computationaltechniques for Engineering

Use of MATLAB in

Prof. Ashish M. KothariDepartment of Electronics & Communication EngineeringDepartment of Electronics & Communication Engineering

AtmiyaAtmiya Institute of Technology & Science, RajkotInstitute of Technology & Science, Rajkot

Engineering

7

Topics..

� What is MATLAB ??

� Basic Matrix Operations

� Script Files and M-files

� Some more Operations and Functions

� Plotting functions ..� Plotting functions ..

8

Topics..

� What is MATLAB ??

� Basic Matrix Operations

� Script Files and M-files

� Some more Operations and Functions

� Plotting functions � Plotting functions

9

MATLAB

� “MATrix LABoratory”

� Powerful, extensible, highly integrated computation, programming, visualization, and simulation packagesimulation package

� Widely used in engineering, mathematics, and science

10

MATLAB

Everything in MATLAB is a matrix !

MATLAB- Starting & Quiting11

Starting MATLAB

On a Microsoft Windows platform, to start MATLAB, double-click theMATLAB shortcut icon on your Windows desktop.MATLAB shortcut icon on your Windows desktop.

On Linux, to start MATLAB, type matlab at the operating system prompt.

After starting MATLAB, the MATLAB desktop opens – see “MATLABDesktop”.

You can change the directory in which MATLAB starts, define startupoptions including running a script upon startup, and reduce startup time insome situations.

MATLAB- Starting & Quiting12

Quiting MATLAB

To end your MATLAB session, select Exit MATLAB from theFile menu in the desktop, or type quit in the CommandFile menu in the desktop, or type quit in the CommandWindow.

13

The MATLAB Desktop

15

MATLAB Variable

� Variable names ARE case sensitive

� Variable names can contain up to 63 characters (as of MATLAB 6.5 and newer)

� Variable names must start with a letter followed by letters, digits, and underscores.

16

MATLAB Variable

no declarations needed

mixed data types

>> 16 + 24

ans =

40

>> product = 16 * 23.24 mixed data types

semi-colon suppresses output of the calculation’s result

>> product = 16 * 23.24

product =

371.84

>> product = 16 *555.24;

>> product

product =

8883.8

17

MATLAB Variable

complex numbers (i or j ) require no special handling

clear removes all variables;

clear x y removes only x and y

>> clear

>> product = 2 * 3^3;

>> comp_sum = (2 + 3i) + (2 - 3i);

>> show_i = i^2;

>> save three_things

>> clear

>> load three_things

save /load are used to

retain/restore workspace variables

>> load three_things

>> who

Your variables are:

comp_sum product show_i

>> product

product =

54

>> show_i

show_i =

-1

use home to clear screen and put cursor at the top of the screen

18

MATLAB Special Variables

ans Default variable name for results

pi Value of ππππeps Smallest incremental number

inf Infinity

NaN Not a number e.g. 0/0NaN Not a number e.g. 0/0

i and j i = j = square root of -1

realmin The smallest usable positive real number

realmax The largest usable positive real number

19

Topics..

� What is MATLAB ??

� Basic Matrix Operations

� Script Files and M-files

� Some more Operations and Functions

� Plotting functions ..� Plotting functions ..

20

Math & Assignment Operators

Power ^ or .^ e.g a^b or a.^b

Multiplication * or .* e.g a*b or a.*b

Division / or ./ e.g a/b or a./b

or \ or .\ e.g b\a or b.\a

NOTE: 56/8 = 8 \ 56NOTE: 56/8 = 8 \ 56

- (unary) + (unary)Addition + a + bSubtraction - a - bAssignment = a = b (assign b to a)

21

Other MATLAB symbols

>> prompt

. . . continue statement on next line

, separate statements and data, separate statements and data

% start comment which ends at end of line

; (1) suppress output

(2) used as a row separator in a matrix

: specify range

22

MATLAB Relational Operators

� MATLAB supports six relational operators.

Less Than <

Less Than or Equal <=Less Than or Equal <=

Greater Than >

Greater Than or Equal >=

Equal To ==

Not Equal To ~=

23

MATLAB Logical Operators

� MATLAB supports three logical operators.

not ~ % highest precedencenot ~ % highest precedence

and & % equal precedence with or

or | % equal precedence with and

24

MATLAB Matrices

� MATLAB treats all variables as matrices. For our purposes a matrix can be thought of as an array, in fact, that is how it is stored.

� Vectors are special forms of matrices and contain only one � Vectors are special forms of matrices and contain only one row OR one column.

� Scalars are matrices with only one row AND one column

25

MATLAB Matrices

� A matrix with only one row AND one column is a scalar. A scalar can be created in MATLAB as follows:

» a_value=23

a_value =

23

26

MATLAB Matrices

� A matrix with only one row is called a row vector. A row vector can be created in MATLAB as follows (note the commas):

» rowvec = [12 , 14 , 63]» rowvec = [12 , 14 , 63]

rowvec =

12 14 63

27

MATLAB Matrices

� A matrix with only one column is called a column vector. A column vector can be created in MATLAB as follows (note the semicolons):

» colvec = [13 ; 45 ; -2]» colvec = [13 ; 45 ; -2]

colvec =

13

45

-2

28

MATLAB Matrices

� A matrix can be created in MATLAB as follows (note the commas AND semicolons):

» matrix = [1 , 2 , 3 ; 4 , 5 ,6 ; 7 , 8 , 9]

matrix =

1 2 3

4 5 6

7 8 9

29

Extracting a Sub-Matrix

� A portion of a matrix can be extracted and stored in a smaller matrix by specifying the names of both matrices and the rows and columns to extract. The syntax is:

sub_matrix = matrix ( r1 : r2 , c1 : c2 ) ;sub_matrix = matrix ( r1 : r2 , c1 : c2 ) ;

where r1 and r2 specify the beginning and ending rows and c1 and c2 specify the beginning and ending columns to be extracted to make the new matrix.

30

MATLAB Matrices

� A column vector can be extracted from a matrix. As an example we create a matrix below:

» matrix=[1,2,3;4,5,6;7,8,9]

� Here we extract column 2 of the matrix and make a column vector:

» col_two=matrix( : , 2)» matrix=[1,2,3;4,5,6;7,8,9]

matrix =

1 2 3

4 5 6

7 8 9

» col_two=matrix( : , 2)

col_two =

2

5

8

31

MATLAB Matrices

� A row vector can be extracted from a matrix. As an example we create a matrix below:

» matrix=[1,2,3;4,5,6;7,8,9]

� Here we extract row 2 of the matrix and make a row vector. Note that the 2:2 specifies the second row and the 1:3 specifies which columns of the row.

» matrix=[1,2,3;4,5,6;7,8,9]

matrix =

1 2 3

4 5 6

7 8 9

of the row.

» rowvec=matrix(2 : 2 , 1 : 3)

rowvec =

4 5 6

32

Topics..

� What is MATLAB ??

� Basic Matrix Operations

� Script Files /M-files and Function Files

� Some more Operations and Functions

� Plotting functions ..� Plotting functions ..

33

Use of M-File

� There are two kinds of M-files:

�Scripts, which do not accept input arguments or return output arguments. They operate on data in the workspace.

�Functions, which can accept input

arguments and return output arguments. Internal variables are local to the function.

Click to create a new M-File

34

M-File as script file

Save file as filename.m

Type what you want to do, eg. Create matrices

If you include “;” at the end of each statement,result will not be shown immediately

Run the file by typing the filename in the command window

35

MATLAB Function File

function [a b c] = myfun(x, y)b = x * y; a = 100; c = x.^2;

>> myfun(2,3) % called with zero outputsans =

100>> u = myfun (2,3) % called with one output

Write these two lines to a file myfun.mand save it on MATLAB’s path

>> u = myfun (2,3) % called with one outputu =

100>> [u v w] = myfun(2,3) % called with all outputsu =

100v =

6w =

4

Any return value which is not stored in an output variable is simply discarded

36

Topics..

� What is MATLAB ??

� Basic Matrix Operations

� Script Files and M-files

� Some more Operations and Functions

� Plotting functions ..� Plotting functions ..

37

Some Useful MATLAB commands

� who List known variables

� whos List known variables plus their size

� help >> help sqrt Help on using sqrt

� lookfor >> lookfor sqrt Search for� lookfor >> lookfor sqrt Search for

keyword sqrt in m-files

� what >> what a: List MATLAB files in a:

� clear Clear all variables from work space

� clear x y Clear variables x and y from work space

� clc Clear the command window

38Some Useful MATLAB commands

� what List all m-files in current directory

� dir List all files in current directory

� ls Same as dir

� type test Display test.m in command window

� delete test Delete test.m� delete test Delete test.m

� cd a: Change directory to a:

� chdir a: Same as cd

� pwd Show current directory

� which test Display directory path to ‘closest’ test.m

39

MATLAB Logical Functions

� MATLAB also supports some logical functions.

xor (exclusive or) Ex: xor (a, b)

Where a and b are logical expressions. The xoroperator evaluates to true if and only if one expression is true and the other is false. True is returned as 1, false as 0.returned as 1, false as 0.

any (x) returns 1 if any element of x is nonzero

all (x) returns 1 if all elements of x are nonzero

isnan (x) returns 1 at each NaN in x

isinf (x) returns 1 at each infinity in x

finite (x) returns 1 at each finite value in x

40Matlab Selection Structures

� An if - elseif - else structure in MATLAB.

Note that elseif is one word.

if expression1 % is true

% execute these commands

elseif expression2 % is true

% execute these commands

else % the default

% execute these commands

end

41

MATLAB Repetition Structures

A for loop in MATLAB for x = arrayfor ind = 1:100

b(ind)=sin(ind/10)end

while loop in MATLAB while expressionwhile x <= 10

% execute these commandsend

42

x=0.1:0.1:10;

b=sin(x);

Plot(b,x)

------ no

computational

complexity

43

Scalar - Matrix Addition

» a=3;

» b=[1, 2, 3;4, 5, 6]

b =

1 2 3

4 5 64 5 6

» c= b+a % Add a to each element of b

c =

4 5 6

7 8 9

44

Scalar - Matrix Subtraction

» a=3;

» b=[1, 2, 3;4, 5, 6]

b =

1 2 31 2 3

4 5 6

» c = b - a %Subtract a from each element of b

c =

-2 -1 0

1 2 3

45

Scalar - Matrix Multiplication

» a=3;

» b=[1, 2, 3; 4, 5, 6]

b =

1 2 31 2 3

4 5 6

» c = a * b % Multiply each element of b by a

c =

3 6 9

12 15 18

46

Scalar - Matrix Division

» a=3;

» b=[1, 2, 3; 4, 5, 6]

b =

1 2 31 2 3

4 5 6

» c = b / a % Divide each element of b by a

c =

0.3333 0.6667 1.0000

1.3333 1.6667 2.0000

47

The use of “.” – “Element” Operation

Given A:

Divide each element of Multiply each Square each Divide each element of A by 2

Multiply each element of A by 3

Square each element of A

4848

MATLAB Toolboxes

� MATLAB has a number of add-on software modules, called toolbox , that perform more specialized computations.

� Signal Processing� Image Processing � Communications� Communications� System Identification� Wavelet Filter Design � Control System � Fuzzy Logic� Robust Control� µ-Analysis and Synthesis� LMI Control � Model Predictive Control� …

4949

MATLAB Demo

� Demonstrations are invaluable since they give an indication of the MATLAB capabilities.

� A comprehensive set are available by typing the command � A comprehensive set are available by typing the command >>demodemo in MATLAB prompt.

50

An Interesting, MATLAB command

why

In case you ever needed a reason

51

Topics..

� What is MATLAB ??

� Basic Matrix Operations

� Script Files and M-files

� Some more Operations and Functions

� Plotting functions ..� Plotting functions ..

Plot

PLOT Linear plot.

� PLOT(X,Y) plots vector Y versus vector X

� PLOT(Y) plots the columns of Y versus their index

x = [-3 -2 -1 0 1 2 3];y1 = (x.^2) -1;plot(x, y1, 'bo-.' );

Example

52

52

� PLOT(X,Y,S) with plot symbols and colors

� See also SEMILOGX, SEMILOGY, TITLE, XLABEL, YLABEL, AXIS, AXES, HOLD, COLORDEF, LEGEND, SUBPLOT...

Plot Properties

XLABEL X-axis label.

� XLABEL('text') adds text beside the X-axis on the current axis.

...xlabel( 'x values' );ylabel( 'y values' );

Example

53

53

YLABEL Y-axis label.

� YLABEL('text') adds text beside the Y-axis on the current axis.

Hold

HOLD Hold current graph.

� HOLD ON holds the current plot and all axis properties so that subsequent graphing commands add to the existing

...hold on;y2 = x + 2;plot(x, y2, 'g+:' );

Example

54

54

commands add to the existing graph.

� HOLD OFF returns to the default mode

� HOLD, by itself, toggles the hold state.

Subplot

SUBPLOT Create axes in tiled positions.

� SUBPLOT(m,n,p), or SUBPLOT(mnp), breaks the Figure window into an m-by-n matrix of small axes

55

55

x = [-3 -2 -1 0 1 2 3];y1 = (x.^2) -1;% Plot y1 on the topsubplot(2,1,1);plot(x, y1, 'bo-.' );xlabel( 'x values' );ylabel( 'y values' );% Plot y2 on the bottomsubplot(2,1,2);y2 = x + 2;plot(x, y2, 'g+:' );

Example

Figure

FIGURE Create figure window.

� FIGURE, by itself, creates a new figure window, and returns its handle.

56

56

x = [-3 -2 -1 0 1 2 3];y1 = (x.^2) -1;% Plot y1 in the 1 st Figureplot(x, y1, 'bo-.' );xlabel( 'x values' );ylabel( 'y values' );% Plot y2 in the 2 nd Figurefigurey2 = x + 2;plot(x, y2, 'g+:' );

Example

Surface Plot

x = 0:0.1:2;y = 0:0.1:2;[xx, yy] = meshgrid(x,y);zz=sin(xx.^2+yy.^2);surf(xx,yy,zz)xlabel('X axes')ylabel('Y axes')

57

57

contourf-colorbar-plot3-waterfall-contour3-mesh-surf

3 D Surface Plot58

58

MATLAB Applications

>> t=-2*pi:0.1:2*pi;

y=1.5*sin(t);

plot(t,y);

xlabel(' ------ > time')

59

DSP

59

xlabel(' ------ > time')

ylabel('------> sin(t)')

MATLAB Applications

>> t=-2*pi:0.1:2*pi;

y=1.5*cos(t);

stem(t,y);

xlabel(' ------ > time')

60

DSP

60

xlabel(' ------ > time')

ylabel('------> sin(t)')

MATLAB Applications

� n=input('enter value of n')

� t=0:1:n-1;

� y1=ones(1,n); %unit step

� y2=[zeros(1,4) ones(1,n-4)]; %delayed unit step

61

DSP

61

� y2=[zeros(1,4) ones(1,n-4)]; %delayed unit step

� subplot(2,1,1);

� stem(t,y1,'filled');ylabel('amplitude');

� xlabel('n----->');ylabel('amplitude');

� subplot(2,1,2);

� stem(t,y2,'filled');

� xlabel('n----->');ylabel('amplitude');

MATLAB Applications 62

DSP

62

MATLAB Applications

Control Systems

1

1 2 1...( )

n n

np s p s pH s

−++ + +=

Transfer Function

63

63

1 2 11

1 1 1

1 2 1

1 1 1

...( )

...

, ... numerator coefficients

, ... denominator coefficients

n

m m

m

n

m

p s p s pH s

q s q s q

where

p p p

q q q

+−

+

+

+

+ + +=+ + +

MATLAB Applications

Control Systems

� Consider a linear time invariant (LTI) single-input/single-output system

Transfer Function

64

64

� Applying Laplace Transform to both sides with zero initial conditions

'' 6 ' 5 4 ' 3y y y u u+ + = +

2

( ) 4 3( )

( ) 6 5

Y s sG s

U s s s

+= =+ +

MATLAB Applications

Control SystemsTransfer Function

>> num = [4 3];>> den = [1 6 5];

>> [num,den] = tfdata(sys,'v')

num =

65

65

>> sys = tf(num,den)Transfer function:

4 s + 3-----------------s^2 + 6 s + 5

num = 0 4 3

den =1 6 5

MATLAB Applications

Control Systems

Zero-pole-gain model (ZPK)

1 2( )( ) ... ( )( )

( )( ) ... ( )ns p s p s p

H s Ks q s q s q

− − + + −=− − + + −

66

66

1 2

1 2 1

1 1 1

( )( ) ... ( )

, ... the zeros of H(s)

, ... the poles of H(s)

m

n

m

s q s q s q

where

p p p

q q q+

+

− − + + −

MATLAB Applications

Control Systems

� Consider a Linear time invariant (LTI) single-input/single-output system

'' 6 ' 5 4 ' 3y y y u u+ + = +

Zero-pole-gain model (ZPK)

67

67

� Applying Laplace Transform to both sides with zero initial conditions

'' 6 ' 5 4 ' 3y y y u u+ + = +

2

( ) 4 3 4( 0.75)( )

( ) ( 1)( 5)6 5

Y s s sG s

U s s ss s

+ += = =+ ++ +

MATLAB Applications

Control Systems

>> G=tf([4 3],[1 6 5])

Transfer function:4 s + 3

-------------

>> [z,p,k]=zpkdata(G)

z = [-0.7500]

68

68

-------------s^2 + 6 s + 5 p =

[-5;-1]

k =4

MATLAB Applications

Control Systems

>> bode(G)

69

69

MATLAB Applications

Control Systems

>> rlocus(G)

70

70

MATLAB Applications

Control Systems

>> nyquist(G)

71

71

MATLAB Applications

Control Systems

>> step(G)

72

72

MATLAB Applications

Control Systems

>> impulse(G)

73

73

MATLAB Applications

Communication

>> t=0:pi/100:2*pi;>> x=sin(t);>> subplot(211);plot(t,x);>> Fc=1000;>> Fs=2000;

74

74

>> y=ammod(x,Fc,Fs);>> subplot(212);plot(t,y);

MATLAB Applications

Communication75

75

Online MATLAB Resources

� www.mathworks.com/

� www.mathtools.net/MATLAB

� www.math.utah.edu/lab/ms/matlab/matlab.html

� web.mit.edu/afs/athena.mit.edu/software/matlab/

76

76

� web.mit.edu/afs/athena.mit.edu/software/matlab/

www/home.html

� www.utexas.edu/its/rc/tutorials/matlab/

� www.math.ufl.edu/help/matlab-tutorial/

� www.indiana.edu/~statmath/math/matlab/links.html

� www-h.eng.cam.ac.uk/help/tpl/programs/matlab.html

Reference Books

Mastering MATLAB 7, D. Hanselman and B. Littlefield,Prentice Hall, 2004

77

77

Getting Started with MATLAB 7: A Quick Introductionfor Scientists and Engineers, R. Pratap, Oxford UniversityPress, 2005.

Some More Web Resources

78

MATLAB Educational sites:

http://www.eece.maine.edu/mm/matweb.html

Yahoo! MATLAB Web site:

78

Yahoo! MATLAB Web site:

dir.yahoo.com/Science/mathematics/software/matlab/

Newsgroup:

comp.soft-sys.matlab

79

Thanks

Questions ??

top related