Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
79 views

Matlab An Introduction Lecture One

MATLAB environment is command oriented somewhat like UNIX. A prompt appears on the screen and a matlab statement can be entered. If a statement is terminated with a semicolon ( ; ), no prompt appears.

Uploaded by

Netsanet Jemal
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views

Matlab An Introduction Lecture One

MATLAB environment is command oriented somewhat like UNIX. A prompt appears on the screen and a matlab statement can be entered. If a statement is terminated with a semicolon ( ; ), no prompt appears.

Uploaded by

Netsanet Jemal
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 45

INTRODUCTION

TO MATLAB
AM2032 JAYANTA MUKHERJEE

Introduction to MATLAB Running MATLAB and MATLAB Environment Getting help

Variables, Arithmetic and Logical Operators


Matrices and Vectors Mathematical Functions Plotting Programming M-files User Defined Functions Miscellaneous Tips
AM2032 JAYANTA MUKHERJEE

Introduction to MATLAB

AM2032 JAYANTA MUKHERJEE

Running MATLAB & the MATLAB Environment


You can enter MATLAB with system command matlab , C:> matlab. Or, it can be started by clicking on the start-up menu or a short-cut icon

AM2032 JAYANTA MUKHERJEE

MATLAB Desktop
Command Window is used to enter variables Launch Pad is used to and run functions and Launch Pad provide easy access to Command M-files. The Command Command HistoryWindow is window is where you tools, demos, and to the view previously >> symbol, you can interact with used After can type the commands documentation. Matlab directly. Default used functions, and Command directory on working selected lines can be History Windows is C:/ MATLAB / bin. copied and executed.
AM2032 JAYANTA MUKHERJEE

MATLAB Desktop contd


Workspace consists of the set of variablesDirectory (named arrays) Current built up during a is used to change MATLAB session and Command Window stored in that memory. directory is worked on, quickly.

Workspace

Current Directory

AM2032 JAYANTA MUKHERJEE

MATLAB Editor

Access to commands

Color keyed text with auto indents

tabbed sheets for other files being edited


AM2032 JAYANTA MUKHERJEE

Getting MATLAB Help


Type one of the following commands in the command window:
>>help lists all the help topics >>help topic provides help for the specified topic >>help command provides help for the specified command >>helpwin opens a separate help window for navigation >>Lookfor keyword search all M-files for keyword

Online resource
AM2032 JAYANTA MUKHERJEE

MATLAB Variables
The MATLAB environment is command oriented somewhat like UNIX. A prompt appears on the screen and a MATLAB statement can be entered. When the <ENTER> key is pressed, the statement is executed, and another prompt appears. If a statement is terminated with a semicolon ( ; ), no results will be displayed. Otherwise results will appear before the next prompt. 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. Variable names and their types do not have to be declared in MATLAB. Any variable can take real, complex, and integer values. The name of variable is not accepted if it is reserved word.
AM2032 JAYANTA MUKHERJEE

MATLAB Variables contd


Special variables:
ans: default variable name for the result. pi: = 3.1415926 eps: = 2.2204e-016, smallest value by which two numbers can differ inf: , infinity NAN or nan: not-a-number

Commands involving variables:


who: lists the names of the defined variables whos: lists the names and sizes of defined variables clear: clears all variables clear name: clears the variable name clc: clears the command window clf: clears the current figure and the graph window Ctrl+C: Aborts calculation
AM2032 JAYANTA MUKHERJEE

MATLAB Variables contd


You can think of computer memory as a large set of boxes in which numbers can be stored. The values can be inspected and changed.

Boxes can be labeled with a variable name.

>> A=3 A= 3

3 A

AM2032 JAYANTA MUKHERJEE

MATLAB Variables contd


Suppose we want to calculate the volume of a cylinder. Its radius and height are stored as variables in memory.

>> volume = pi*radius^2*height

volume

radius
AM2032 JAYANTA MUKHERJEE

height

MATLAB Variables contd


Variable is a name given to a reserved location in memory.
>>x = 111; >>number_of_students = 75; >>name = University College Cork; >>radius = 5; >>area = pi * radius^2; >>x_value=23 x_value=23
AM2032 JAYANTA MUKHERJEE

MATLAB Arithmetic Operators


Operator
+ -

Description
Addition Subtraction

.*
./ .\ =

Multiplication (element wise)


Right division (element wise) Left division (element wise) Assignment operator,e.g. a = b,(assign b to a)

:
.^ ' *

Colon operator (Specify Range )


Power (element wise) Transpose Matrix multiplication

/
\ ; ^

Matrix right division


Matrix left division Row separator in a Matrix Matrix power
AM2032 JAYANTA MUKHERJEE

Logical Operators in MATLAB


Operator
&
| ~ < <= > >= == ~=

Description
Returns 1 for every element location that is true (nonzero) in both arrays, and 0 for all other elements.
Returns 1 for every element location that is true (nonzero) in either one or the other, or both, arrays and 0 for all other elements. Complements each element of input array, A. Less than Less than or equal to Greater than Greater than or equal to Equal to Not equal to
AM2032 JAYANTA MUKHERJEE

Calculations at the Command Line / Workspace


MATLAB as a calculator Assigning Variables
a = 2;
b = 5; a^b ans = 32

-5/(4.8+5.32)^2 ans = -0.0488 (3+4i)*(3-4i) ans = 25 cos(pi/2) ans = 6.1230e-017 exp(acos(0.3)) ans = 3.5470

Semicolon suppresses screen output


Results assigned to ans if name not specified

x = 5/2*pi;
y = sin(x) y = 1 z = asin(y) z = 1.5708

() parentheses for function inputs

AM2032 JAYANTA MUKHERJEE


Copyright 1984 - 1998 by The MathWorks, Inc.

Vector & Matrix in MATLAB


How do A=
Columns (n) you 1 specify 2 this 3 5 5 4 matrix 5

A in MATLAB ?
A (2,4) >>A=[4 10 1 6 2

1 2

10

11

16

21

1.2 7
5
8

9
7

12

4
1

17

25 22
11 23

Rows (m) 3 4

7.2 3

13

18

8 1.2 9 4 25 A (17) 7.2 5 7 1 11 0 0.5 4 5 56

0
23

0.5 9

14

5
0

19

56 24
10 25

Rectangular Matrix: 23 83 13 0 10 ]; Scalar: 1-by-1 array m-by-1 array >>A=[4 10 1 6 2; 8 1.2 4EITHER 25; 7.2 5 7 1 11; 0 0.5 4 Vector: 5 56; 23 83 13 0 10 ]; Matrix elements can 9 be 1-by-n array numbers OR characters Matrix: m-by-n array
AM2032 JAYANTA MUKHERJEE
Copyright 1984 - 1998 by The MathWorks, Inc.

83 10 13 15

20

Examples (Vectors)
X=[2 7 4]; X=[2; 7; 4]; X=[2 7 4];
2 7 4

Row Vector Column Vector

2 7 4
2 7 4 3 8 9

X=[2 7 4;3 8 9];

Matrix or a 2D array Matrix of matrices

Y=[X X];

2 7 ? 4 2 7 4 3 8 9 3 8 9

AM2032 JAYANTA MUKHERJEE

More on Vectors
x = start:end Creates row vector x starting with start, counting by 1 , ending at end x = initial value : increment : final Creates row vector x starting with start, counting by value increment, ending at or before end x = linspace(start,end,number) x = logspace(start,end,number) length(x) y = x dot(x,y),cross(x,y) Creates linearly spaced row vector x starting with start, ending at end, having number elements Creates logarithmically spaced row vector x starting with start, ending with end, having number elements Returns the length of vector x Transpose of vector x Returns the scalar dot and vector cross product of the vector x and y
AM2032 JAYANTA MUKHERJEE

More on Matrices
zeros(n) zeros(m,n) rand(m,n) Returns a n n matrix of zeros Returns a m n matrix of zeros Returns a m n matrix of random numbers

eye(m,n)
ones(n) ones(m,n)

Returns a m n Identity matrix


Returns a n n matrix of ones Returns a m n matrix of ones For a m n matrix A, returns the row vector [m,n] containing the number of rows and columns in matrix Returns the larger of the number of rows or columns in A
AM2032 JAYANTA MUKHERJEE

size(A)

length(A)

Entering Numeric Arrays


Row separator: semicolon (;) Column separator: space / comma (,)
a=[1 2;3 4]

a =
1 3 b = 2 4

Use square brackets [ ]

b=[-2.8, sqrt(-7), (3+5+6)*3/4] 10.5000

MATLAB does not-2.8000 allow this ! 0 + 2.6458i


b(2,5) = 23 b = -2.8000 0 + 2.6458i

10.5000

23.0000

Matrices must be rectangular/same height. (Set undefined elements to zero)

Any MATLAB expression can be entered as a matrix element


Copyright 1984 - 1998 by The MathWorks, Inc.

AM2032 JAYANTA MUKHERJEE

Entering Numeric Arrays - cont.


Scalar expansion
w=[1 2;3 4] + 5 w = 6 7 8 9 x = 1:5 x =

Creating sequences colon operator (:)

1 2 y = 2:-0.5:0
y = 2.0000 1.5000 z = rand(2,4)

1.0000

0.5000

Utility functions for creating matrices.

z =
0.9501 0.2311 0.6068 0.4860 0.8913 0.7621 0.4565 0.0185

AM2032 JAYANTA MUKHERJEE


Copyright 1984 - 1998 by The MathWorks, Inc.

Numerical Array Concatenation - [ ]


Use [ ] to combine existing arrays as matrix elements
a=[1 2;3 4]

a =
1 3 2 4

Use square brackets [ ]


4*a; 5*a, 6*a]

Row separator: semicolon (;) Column separator: space / comma (,)

cat_a=[a, 2*a; 3*a, cat_a = 1 2 2 3 4 6 3 6 4 9 12 12 5 10 6 15 20 18

4 8 8 16 12 24

4*a

The resulting matrix must be rectangular.


AM2032 JAYANTA MUKHERJEE
Copyright 1984 - 1998 by The MathWorks, Inc.

Array Subscripting / Indexing


1 2 3 4 5

A=

1 2

4 8

10

1 9 7 4

11

6 4 1 5 0

16

21

1.2 7 5
8

12

17

25 22 11 23 56 24 10 25
A(4:5,2:3) A([9 14;10 15]) A(1:5,5) A(1:end,end) A(:,5) A(:,end) A(21:25) A(21:end)

3 7.2

13

18

A(3,1) A(3)

4
5

0 23

0.5 9

14

19

83 10 13 15

20

Use () parentheses to specify index colon operator (:) specifies range / ALL [ ] to create matrix of index subscripts end specifies maximum index value
AM2032 JAYANTA MUKHERJEE
Copyright 1984 - 1998 by The MathWorks, Inc.

Some operations should be handled with care


>>A=[1 2;4 5];

>>B=A*A
9 12

% prints

24 33 >> >>B=A.*A 1 4

% Proper matrix multiplication

% prints

16 25

% Element by element multiplication


AM2032 JAYANTA MUKHERJEE

Operations on Matrices
Transpose B=A
eye(n) -> returns an n X n identity matrix eye(m,n) -> returns an m X n matrix with ones on the main diagonal and zeros elsewhere C =A +B C =A - B B = A, where is a scalar

Identity Matrix

Addition and Subtraction Scalar Multiplication

Matrix Multiplication
Matrix Inverse Matrix powers Determinant

C=A*B
B = inv(A), A must be a square matrix in this case B = A * A , A must be a square matrix det(A), A must be a square matrix
AM2032 JAYANTA MUKHERJEE

Multidimensional Arrays
>>A = 1; while length(A) < 4 A = [0 A] + [A 0]; end
Page N
1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

Page 1
1 1 1

16 15 9 2 4 3

20 30 130 0 100 80 11 1 1 70 60 120 3 4 14 15 1 6 10

A = Pascal(4); A(:,:,2) = magic(4) A(:,:,1) 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 A(:,:,2) 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 A(:,:,9) = diag(ones(1,4));

10

20

AM2032 JAYANTA MUKHERJEE

Operating on Matrices

AM2032 JAYANTA MUKHERJEE

Operating on Matrices - cont. Array Multiplication


Matrices must have the same dimensions Dimensions of resulting matrix = dimensions of multiplied matrices Resulting elements = product of corresponding elements from the original matrices
a = [1 2 3 4; 5 6 7 8]; b = [1:4; 1:4]; c = a.*b

c =
1 5 4 12 9 21 16 32

Same rules apply for other array operations too !


c(2,4) = a(2,4)*b(2,4)

AM2032 JAYANTA MUKHERJEE

String Arrays
Created using single quote delimiter (')
str
str = Hi there, str2 = 'Isn't MATLAB great?' str2 =

= 'Hi there,'

Isn't MATLAB great?

Each character is a separate matrix element


(16 bits of memory per character)
str =

1x9 vector

Indexing same as for numeric arrays


AM2032 JAYANTA MUKHERJEE

Mathematical Functions of MATLAB-1


Elemantary Mathematical (Trigonometric) Functions Trigonometric functions sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) atan2(y,x) sinh(x) cosh(x) tanh(x) asinh(x) acosh(x) atanh(x) Remarks - pi/2 atan(x) pi/2, Same as atan(y/x) but pi atan(y,x) pi

AM2032 JAYANTA MUKHERJEE

Mathematical Functions of MATLAB-2


Other elemantary functions Remarks

abs(x) angle(x) sqrt(x) real(x) imag(x) conj(x) round(x) fix(x) floor(x) ceil(x) sign(x) exp(x) log(x) log10(x) factor(x)

Absolute value of x Phase angle of complex value: If x = real, angle = 0. If x = -1, angle = pi/2 Square root of x Real part of complex value x Imaginary part of complex value x Complex conjugate x Round to do nearest integer Round a real value toward zero Round x toward - Round x toward + +1 if x > 0; -1 if x < 0 Exponential base e Log base e Log base 10 1 if x is a prime number, 0 if not

And there are many many more !

AM2032 JAYANTA MUKHERJEE

Plotting in MATLAB
Specify x-data and/or y-data Specify color, line style and marker symbol Syntax: 2-D Plotting
Plotting single line:
plot(xdata, ydata, 'color_linestyle_marker')

Plotting multiple lines:


plot(x1, y1, 'clm1', x2, y2, 'clm2', ...)
AM2032 JAYANTA MUKHERJEE

2-D Plotting - example


Create a Blue (default color) Sine Wave

x = 0:1:2*pi; y = sin(x); plot(x,y);

AM2032 JAYANTA MUKHERJEE

2-D Plotting : example-cont.


Adding a Grid
GRID ON creates a grid on the current figure GRID OFF turns off the grid from the current figure GRID toggles the grid state

x = 0:1:2*pi; y = sin(x); plot(x,y);grid on;

AM2032 JAYANTA MUKHERJEE

Adding additional plots to a figure


HOLD ON holds the current plot HOLD OFF releases hold on current plot HOLD toggles the hold state
x = 0:.1:2*pi; y = sin(x); plot(x,y,'b') grid on; hold on; plot(x,exp(-x),'r:*');
AM2032 JAYANTA MUKHERJEE

Controlling Viewing Area

ZOOM ON allows user to select viewing area

ZOOM OFF prevents zooming operations


ZOOM toggles the zoom state AXIS sets axis range

[xmin xmax ymin ymax] axis([0 2*pi 0 1]);

AM2032 JAYANTA MUKHERJEE

Graph Annotation
TITLE LEGEND

YLABEL

TEXT or GTEXT

XLABEL
AM2032 JAYANTA MUKHERJEE

Subplots
SUBPLOT- display multiple axes in the same figure window
subplot(#rows, #cols, index);

subplot(2,2,1);
plot(1:10); subplot(2,2,2); x = 0:.1:2*pi; plot(x,sin(x)); subplot(2,2,3); x = 0:.1:2*pi;

plot(x,exp(-x),r);
subplot(2,2,4); plot(peaks);
AM2032 JAYANTA MUKHERJEE

Alternative Scales for Axes

LOGLOG Both axes logarithmic

SEMILOGY log Y linear X

SEMILOGX log X linear Y

PLOTYY 2 sets of linear axes

AM2032 JAYANTA MUKHERJEE

3-D Line Plotting


plot3(xdata, ydata, zdata, 'clm', ...)

z = 0:0.1:40; x = cos(z);

y = sin(z);
plot3(x,y,z);grid on;

AM2032 JAYANTA MUKHERJEE

3-D Surface Plotting

AM2032 JAYANTA MUKHERJEE

Example:Advanced 3-D Plotting

B = -0.2; x = 0:0.1:2*pi; y = -pi/2:0.1:pi/2; [x,y] = meshgrid(x,y); z = exp(B*x).*sin(x).*cos(y); surf(x,y,z)

AM2032 JAYANTA MUKHERJEE

Next Lecture: Programming with Matlab


Lecture notes can be found at the following link:

http://euclid.ucc.ie/framesets/fset_staffdirectory.htm
Then click on my name and then on Lecture Notes

AM2032 JAYANTA MUKHERJEE

Questions?

AM2032 JAYANTA MUKHERJEE

You might also like