105
MATLAB BASICS AJIT PATEL Introduction to MATLAB EEVFN-2013

MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

  • Upload
    others

  • View
    5

  • Download
    1

Embed Size (px)

Citation preview

Page 1: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

MATLAB BASICS

AJIT PATEL

Introduction to MATLABEEVFN-2013

Page 2: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

MATLAB Review

� What is Matlab?� Matlab Screen� Variables, array, matrix, indexing � Matrices & Vectors � Operators (Arithmetic, relational, logical )� Display Facilities� Flow Control� Built-In Functions � Script & Function M-files

Page 3: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

What is MATLAB?

� Computational Software � From The MathWorks: www.mathworks.com� Algorithm Development � Environment � MATrix LABoratory � Matlab is basically a high level language

which has many specialized toolboxes for making things easier for us

Page 4: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Matlab Screen

� Command Window� type commands

� Current Directory� View folders and m-files

� Workspace� View program variables� Double click on a variable

to see it in the Array Editor

� Command History� view past commands� save a whole session

using diary

Page 5: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

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

Page 6: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Simple Mathematic calculations

in command window� >> 1+1

ans =2

� >> 5-6ans =

-1� >> 7/8

ans =0.8750

� >> 9*2ans =

18

Page 7: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Syntax

� MATLAB syntax for entering commands:

>> x=1;

>> y=2

y =

2

>> plot(x,y,...

’r.’)

� Syntax:

� ; - ends command, suppresses output

� - ends command, allows output

� ... - allows to continue entering a statement in the next line

Page 8: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

8

Variables and Arrays

� Array : A collection of data values organized into rows and columns, and known by a single name.

Row 1

Row 2

Row 3

Row 4

Col 1 Col 2 Col 3 Col 4 Col 5

arr(3,2)

Page 9: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

9

Arrays

� The fundamental unit of data in MATLAB

� Scalars are also treated as arrays by MATLAB (1 row and 1 column).

� Row and column indices of an array start from 1.

� Arrays can be classified as vectors andmatrices .

Page 10: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

10

MATLAB BASICS

� Vector: Array with one dimension

� Matrix: Array with more than one dimension

� Size of an array is specified by the number of rowsand the number of columns, with the number ofrows mentioned first (For example: m x n array).

Total number of elements in an array is theproduct of the number of rows and the number ofcolumns.

Page 11: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

11

MATLAB BASICS

1 23 45 6

a= 3x2 matrix � 6 elements

b=[1 2 3 4] 1x4 array � 4 elements, row vector

c=135

3x1 array � 3 elements, column vector

a(2,1)=3 b(3)=3 c(2)=3

Row # Column #

Page 12: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

12

Variables

� A region of memory containing an array, which is known by a user-specified name .

� Contents can be used or modified at any time.

� Variable names must begin with a letter, followed by any combination of letters, numbers and the underscore (_)character. Only the first 31 characters are significant.

� The MATLAB language is Case Sensitive. NAME, name and Name are all different variables.

Give meaningful (descriptive and easy-to-remember) names for the variables. Never define a variable with the same name as a MATLAB function or command.

Page 13: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Variables

� No need for types. i.e.,

� All variables are created with double precision unless specified and they are matrices.

� After these statements, the variables are 1x1 matrices with double precision

int a;double b;float c;

Example:>>x=5;>>x1=2;

Page 14: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Variables

� Begin with an alphabetic character: a � Case sensitive: a, A � Data type detection: a=5; a='ok'; a=1.3 � Default output variable: ans� Built-in constants: pi i j Inf� clear removes variables � who lists variables � Special characters � [] () {} ; % : = . ………… @

Page 15: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

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

Page 16: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Variables (contd.)

� Matlab allows infinity as value:

>> x = 1/0x =

Inf

>> x = 1.e1000x =

Inf

>> x = log(0)x =

Inf

>> x = 0/0x =

NaN

>> x = inf/infx =

NaN

>> x = inf * 0x =

NaN

� Other value NaN– not a number:

Page 17: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

17

MATLAB BASICS

Common types of MATLAB variables

� double: 64-bit double-precision floating-point numbersThey can hold real or complex numbers in the range from ±10-308 to ±10308 with 15 or 16 decimal digits.

>> var = 1 + i ;

� char: 16-bit values, each representing a single characterThe char arrays are used to hold character strings.

>> comment = ‘This is a character string’ ;

The type of data assigned to a variable determines the type of variable that is created.

Page 18: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

18

Initializing Variables in Assignment StatementsAn assignment statement has the general form

var = expression

Examples:>> var = 40 * i; >> a2 = [0 1+8];>> var2 = var / 5; >> b2 = [a2(2) 7 a];>> array = [1 2 3 4]; >> c2(2,3) = 5;>> x = 1; y = 2; >> d2 = [1 2];>> a = [3.4]; >> d2(4) = 4;>> b = [1.0 2.0 3.0 4.0];>> c = [1.0; 2.0; 3.0];>> d = [1, 2, 3; 4, 5, 6]; ‘;’ semicolon suppresses the>> e = [1, 2, 3 automatic echoing of values but

4, 5, 6]; it slows down the execution.

MATLAB BASICS

Page 19: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

19

MATLAB BASICS

Initializing Variables in Assignment Statements

� Arrays are constructed using brackets and semicolons. All of the elements of an array are listed in row order.

� The values in each row are listed from left to right and they are separated by blank spaces or commas.

� The rows are separated by semicolons or new lines.

� The number of elements in every row of an array must be the same.

� The expressions used to initialize arrays can include algebraic operations and all or portions of previously defined arrays.

Page 20: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

20

MATLAB BASICS

Initializing with Shortcut Expressions

first: increment: last• Colon operator: a shortcut notation used to initialize

arrays with thousands of elements

>> x = 1 : 2 : 10;>> angles = (0.01 : 0.01 : 1) * pi;

• Transpose operator: (′) swaps the rows and columns of an array

>> f = [1:4]′;>> g = 1:4; >> h = [ g′ g′ ];

1 12 23 34 4

h=

Page 21: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

More on Vectors

x = start:end Creates row vector x starting with start, counting by 1, ending at end (provided end is an integer)

x = initial value : increment : final

value

Creates row vector x starting with start, counting by increment, ending at or before end

x = linspace(start,end,number) Creates linearly spaced row vector x starting with start, ending at end, having number elements

x = logspace(start,end,number) Creates logarithmically spaced row vector x starting with start, ending with end, having number elements

length(x) Returns the length of vector x

y = x’ Transpose of vector x

dot(x,y),cross(x,y) Returns the scalar dot and vector cross product of the vector x and y

Page 22: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Concatenation of Matrices

� x = [1 2], y = [4 5], z=[ 0 0]

A = [ x y]

1 2 4 5

B = [x ; y]

1 2

4 5

C = [x y ;z] Error:??? Error using ==> vertcat CAT arguments dimensions are not consistent.

Page 23: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Initializing with Built-in Functions

zeros(n) Returns a n ⅹⅹⅹⅹ n matrix of zeros

zeros(m,n) Returns a m ⅹⅹⅹⅹ n matrix of zeros

rand(m,n) Returns a m ⅹⅹⅹⅹ n matrix of random numbers

eye(m,n) Returns a m ⅹⅹⅹⅹ n Identity matrix

ones(n) Returns a n ⅹⅹⅹⅹ n matrix of ones

ones(m,n) Returns a m ⅹⅹⅹⅹ n matrix of ones

size(A)For a m ⅹⅹⅹⅹ n matrix A, returns the row vector [m,n] containing the number of rows and columns in matrix

length(A) Returns the larger of the number of rows or columns in A

Page 24: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Generating Vectors from functions

� zeros(M,N) MxN matrix of zeros

� ones(M,N) MxN matrix of ones

� rand(M,N) MxN matrix of uniformly distributed random numbers on (0,1)

x = zeros(1,3)

x =

0 0 0

x = ones(1,3)

x =

1 1 1

x = rand(1,3)

x =

0.9501 0.2311 0.6068

Page 25: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Matrix Index

� The matrix indices begin from 1 (not 0 (as in C))� The matrix indices must be positive integer

Given:

A(-2), A(0)

Error: ??? Subscript indices must either be real positive integers or logicals.

A(4,2)Error: ??? Index exceeds matrix dimensions.

Page 26: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

26

32

54

7

6

1

10

8 9

11 12

4

7

1

10

2

5

Multidimensional Arrays

8

11

• A two dimensional array with m rows and n columns will occupy mxn successive locations in the computer’smemory. MATLAB always allocates array elements in column major order.

a= [1 2 3; 4 5 6; 7 8 9; 10 11 12];a(5) = a(1,2) = 2

• A 2x3x2 array of three dimensions

c(:, :, 1) = [1 2 3; 4 5 6 ];c(:, :, 2) = [7 8 9; 10 11 12];

Page 27: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Multidimensional Arrays

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

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

Page N

Page 10 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

1 1 1 1

1 2 3 4

1 3 6 10

1 4 10 20

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

Page 28: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

28

• It is possible to select and use subsets of MATLAB arrays.

arr1 = [1.1 -2.2 3.3 -4.4 5.5];arr1(3) is 3.3arr1([1 4]) is the array [1.1 -4.4]arr1(1 : 2 : 5) is the array [1.1 3.3 5.5]

• For two-dimensional arrays, a colon can be used in a subscript to select all of the values of that subscript.

arr2 = [1 2 3; -2 -3 -4; 3 4 5];arr2(1, :)arr2(:, 1:2:3)

Sub arrays

Page 29: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

29

• The end function: When used in an array subscript, it returns the highest value taken on by that subscript.

arr3 = [1 2 3 4 5 6 7 8];arr3(5:end) is the array [5 6 7 8]arr4 = [1 2 3 4; 5 6 7 8; 9 10 11 12];arr4(2:end, 2:end)

• Using subarrays on the left hand-side of an assignment statement:

arr4(1:2, [1 4]) = [20 21; 22 23];(1,1) (1,4) (2,1) and (2,4) are updated.arr4 = [20 21; 22 23]; all of the array is changed.

Sub arrays (Contd.)

Page 30: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

30

• Assigning a Scalar to a Sub array: A scalar value on the right-hand side of an assignment statement is copied into every element specified on the left-hand side.

>> arr4 = [1 2 3 4; 5 6 7 8; 9 10 11 12];>> arr4(1:2, 1:2) = 1arr4 =

1 1 3 41 1 7 89 10 11 12

Sub arrays (Contd.)

Page 31: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Array Subscripting / Indexing

4 10 1 6 2

8 1.2 9 4 25

7.2 5 7 1 11

0 0.5 4 5 56

23 83 13 0 10

1

2

3

4

5

1 2 3 4 51 6 11 16 21

2 7 12 17 22

3 8 13 18 23

4 9 14 19 24

5 10 15 20 25

A =

A(3,1)A(3)

A(1:5,5)A(:,5) A(21:25)

A(4:5,2:3)A([9 14;10 15])

• Use () parentheses to specify index• colon operator (:) specifies range / ALL• [ ] to create matrix of index subscripts• ‘end’ specifies maximum index value

A(1:end,end) A(:,end)A(21:end) ’

Page 32: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

32

Hierarchy of operations

• x = 3 * 2 + 6 / 2• Processing order of operations is important

– parentheses (starting from the innermost)– exponentials (from left to right)– multiplications and divisions (from left to right)– additions and subtractions (from left to right)

>> x = 3 * 2 + 6 / 2x =

9

Page 33: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

33

• MATLAB includes a number of predefined special values.These values can be used at any time without initializing them.

• These predefined values are stored in ordinary variables. They can be overwritten or modified by a user.

• If a new value is assigned to one of these variables, then that new value will replace the default one in all later calculations.

>> circ1 = 2 * pi * 10;>> pi = 3;>> circ2 = 2 * pi * 10;

Note: Never change the values of predefined variables.

Special Values

Page 34: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

34

• pi: π value up to 15 significant digits• i, j: sqrt(-1)• Inf: infinity (such as division by 0)• NaN: Not-a-Number (division of zero by zero)• clock: current date and time in the form of a 6-element

row vector containing the year, month, day, hour, minute, and second

• date: current date as a string such as 15-Sept-2012• eps: epsilon is the smallest difference between two

numbers• ans: stores the result of an expression

Special Values (contd.)

Page 35: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Special Values (contd.)

� i and j are the imaginary numbers (can be overwritten)

>> i

ans = 0 + 1.0000i

� Exercise� Q -1: Execute the commands

a) exp(pi/2*i)

b) exp(pi/2i)

� Can you explain the difference between the two results?

Page 36: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Answer

Explanation –

a) exp(pi/2*i) = e (pi/2) *i = cos(pi/2) + i sin(pi/2)

b) exp(pi/2i) = e (pi/2i) = e (-pi/2)*i = cos(pi/2) –i sin(pi/2)

Note –A complex number 2+5i may be input as 2+5i or 2+5*i.In first case, i will be always interpreted as a complex number In second case, i is taken as complex only if i is not been assigned any local value.

b) exp(pi/2i) = 0.0000 - 1.0000 i

� a) exp(pi/2*i) = 0.0000 + 1.0000 i

Page 37: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

37

• The input function displays a prompt string in the Command Window and then waits for the user to respond.

my_val = input( ‘Enter an input value: ’ );

in1 = input( ‘Enter data: ’ );

in2 = input( ‘Enter data: ’ ,`s`);

Initializing with Keyboard In put

Page 38: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

MATLAB's output format or precision

>> help format� format Default. Same as SHORT. � format short Scaled fixed point format with 5 digits. � format long Scaled fixed point format with 15 digits. � format short e Floating point format with 5 digits. � format long e Floating point format with 15 digits. � format short g Best of fixed or floating point format with

5 digits.

� format long g Best of fixed or floating point format with 15 digits.

� format hex Hexadecimal format. � format rat Approximation by ratio of small integers.

Page 39: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

39

>> value = 12.345678901234567;format short → 12.3457format long → 12.34567890123457format short e → 1.2346e+001format long e → 1.234567890123457e+001format short g → 12.346format long g → 12.3456789012346format rat → 1000/81

Changing the data format

Page 40: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Format Types (contd.)

� Matlab does not do exact arithmetic !

>> e = 1 - 3*(4/3 - 1)

e = 2.2204e-016

� >> cos(pi/2)

ans = 6.123233995736766e-017

Page 41: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

String Arrays• Created using single quote delimiter (')

• Each character is a separate matrix element(16 bits of memory per character)

• Indexing same as for numeric arrays

» str = 'Hi there,'

str =

Hi there,

» str2 = 'Isn't MATLAB great?'

str2 =

Isn't MATLAB great?

1x9 vectorstr = H i t h e r e ,

Page 42: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

42

MATLAB BASICS

The disp( array ) function>> disp( 'Hello' )Hello>> disp(5)

5>> disp( [ ' LNMIIT ' 'University' ] )LNMIIT University>> name = ‘ WORLD';>> disp( [ 'Hello ' name ] )Hello WORLD

Page 43: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

43

MATLAB BASICS

The num2str() and int2str() functions>> d = [ num2str(14) ‘-March-' num2str(2013) ];>> disp(d)14-March-2013>> x = 23.11;>> disp( [ 'answer = ' num2str(x) ] )answer = 23.11>> disp( [ 'answer = ' int2str(x) ] )answer = 23

Page 44: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

44

MATLAB BASICS

The fprintf( format, data ) function– %d integer– %f floating point format– %e exponential format– %g either floating point or exponential

format, whichever is shorter– \n new line character– \t tab character

Page 45: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

45

MATLAB BASICS

>> fprintf( 'Result is %d', 3 )Result is 3>> fprintf( 'Area of a circle with radius %d is %f', 3, pi*3^2 )Area of a circle with radius 3 is 28.274334>> x = 5;>> fprintf( 'x = %3d', x )x = 5>> x = pi;>> fprintf( 'x = %0.2f', x ) x = 3.14>> fprintf( 'x = %6.2f', x )x = 3.14>> fprintf( 'x = %d\ny = %d\n', 3, 13 )x = 3y = 13

Page 46: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

46

MATLAB BASICS

Data files• save filename var1 var2 …

>> save myfile.mat x y → binary>> save myfile.dat x –ascii → ascii

• load filename>> load myfile.mat → binary>> load myfile.dat –ascii → ascii

Page 47: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Input / Output

Page 48: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

48

Types of errors in MATLAB programs

• Syntax errors– Check spelling and punctuation

• Run-time errors– Check input data– Can remove “;” or add “disp” statements

• Logical errors– Use shorter statements– Check typos– Check units– Ask your friends, assistants, instructor, …

Page 49: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Matrix Functions

diag(A) – extract diagonal matrixtriu (A)– upper triangular matrixtril (A)– lower triangular matrixrand(m, n) – randomly generated matrixdet(A) – determinant of a matrixinv (A) – inverse of a matrixrank(A) – rank of a matrix

And some more matrix functions are available.

Page 50: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Eigenvalues and Eigenvectors :–eig– eigenvalues and eigenvectors

>>eig(A)produces a column vector with the eigenvalues and

>>[X,D]=eig(A)produces a diagonal matrix D with the eigenvalues onthe main diagonal, and a full matrix X whose columnsare the corresponding eigenvectors.

Built in functions

Page 51: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

51

Operators (arithmetic)

– addition a + b → a + b– subtraction a - b → a - b– multiplication a x b → a * b– division a / b → a / b– exponent ab → a ^ b

Page 52: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Matrices Operations

Given A and B:

Addition Subtraction Product Transpose

Page 53: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Any MATLAB expression can be entered as a matrix element

Entering Numeric Arrays

» a=[1 2;3 4]

a =

1 2

3 4

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

b =

-2.8000 0 + 2.6458i 10.5000

» b(2,5) = 23

b =

-2.8000 0 + 2.6458i 10.5000 0 0

0 0 0 0 23.0000

Row separator:semicolon (;)

Column separator:space / comma (,)

Use square brackets [ ]

Page 54: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Entering Numeric Arrays (contd.)

» w=[1 2;3 4] + 5w =

6 78 9

» x = 1:5

x =1 2 3 4 5

» y = 2:-0.5:0

y = 2.0000 1.5000 1.0000 0.5000 0

» z = rand(2,4)

z =

0.9501 0.6068 0.8913 0.45650.2311 0.4860 0.7621 0.0185

Scalar expansion

Creating sequencescolon operator (:)

Utility functions for creating matrices.

Page 55: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Operators (Element by Element)

.* element-by-element multiplication

./ element-by-element division

.^ element-by-element power

Page 56: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

The use of “.” – “Element” Operation

K= x^2Erorr:??? Error using ==> mpower Matrix must be square.

B=x*yErorr:??? Error using ==> mtimes Inner matrix dimensions must agree.

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

1 2 35 1 43 2 -1

y = A(3 ,:)

y= 3 4 -1

b = x .* y

b=3 8 -3

c = x . / y

c= 0.33 0.5 -3

d = x .^2

d= 1 4 9

x = A(1,:)

x=1 2 3

Page 57: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Numerical Array Concatenation - [ ]

» a=[1 2;3 4]

a =

1 2

3 4

» cat_a=[a, 2*a; 3*a, 4*a; 5*a, 6*a]cat_a =

1 2 2 43 4 6 83 6 4 89 12 12 165 10 6 12

15 20 18 24

Use [ ] to combine existing arrays as matrix “elements”

Row separator:semicolon (;)

Column separator:space / comma (,)

Use square brackets [ ]

The resulting matrix must be rectangular.

4*a

Page 58: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Operations on Matrices

Transpose B=A’

Identity Matrixeye(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

Addition and Subtraction C =A +B C =A - B

Scalar Multiplication B = αA, where α is a scalar

Matrix Multiplication C = A * B

Matrix Inverse B = inv(A), A must be a square matrix in this case

Matrix powers B = A * A , A must be a square matrix

Determinant det(A), A must be a square matrix

Page 59: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Other elementary 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)sin, cos, tanasin, acos, atanmax, minmod, rem

Absolute value of xPhase angle of complex value: If x = real, angle = 0. If x =√-1, angle = pi/2Square root of xReal part of complex value xImaginary part of complex value xComplex conjugate xRound to do nearest integerRound a real value toward zeroRound x toward -∞Round x toward +∞+1 if x > 0; -1 if x < 0Exponential base eLog base eLog base 101 if x is a prime number, 0 if not

Mathematical Functions

And there are many more !

Page 60: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

MATLAB Arithmetic OperatorsOperator 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

Page 61: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Basic Task: Plot the function

sin(x) between 0≤x≤4π� Create an x-array of 100 samples between 0

and 4π.

� Calculate sin(.) of the x-array

� Plot the y-array

>>x=linspace(0,4*pi,100);

>>y=sin(x);

>>plot(y)0 10 20 30 40 50 60 70 80 90 100

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Page 62: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Plot the function e-x/3sin(x) between 0≤x≤4π

� Create an x-array of 100 samples between 0 and 4π.

� Calculate sin(.) of the x-array

� Calculate e-x/3 of the x-array

� Multiply the arrays y and y1

>>x=linspace(0,4*pi,100);

>>y=sin(x);

>>y1=exp(-x/3);

>>y2=y*y1;

Page 63: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Plot the function e-x/3sin(x) between

0≤x≤4π� Multiply the arrays y and y1 correctly

� Plot the y2-array

>>y2=y.*y1;

>>plot(y2)

0 10 20 30 40 50 60 70 80 90 100-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Page 64: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Display Facilities

� plot(.)

� stem(.)

Example:>>x=linspace(0,4*pi,100);>>y=sin(x);>>plot(y)>>plot(x,y)

Example:>>stem(y)>>stem(x,y)

0 10 20 30 40 50 60 70 80 90 100-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0 10 20 30 40 50 60 70 80 90 100-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Page 65: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Plotting in MATLAB• Specify x-data and/or y-data• Specify color, line style and marker

symbol

• Syntax: 2-D Plotting– Plotting single line:

– Plotting multiple lines:

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

plot(xdata, ydata, 'color_linestyle_marker')

Page 66: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

2-D Plotting - example

Create a Blue(default

color)Sine Wave

» x = 0:1:2*pi;

» y = sin(x);

» plot(x,y);

Page 67: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

The parametric equation of a unit circle:x = cos ϴ and y = sin ϴ, 0≤ ϴ ≤ 2∏

>> theta = linspace (0, 2*pi, 100); %linearly spaced

>> x = cos (theta);

>> y = sin (theta);% calculate x and y coordinates

>> plot (x, y); % plot x vs y – plots an ellipse

>> axis (‘equal’); % set the length of both the axes same

>> xlabel (‘x’); % label the x-axis with x

>> ylabel (‘y’); % label the y-axis with y

>> title (‘Circle of unit radius’); % put a title on the plot

>> print % print on the default printer

Example

Page 68: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Plot

Note –axis, xlabel, ylabel and title commands are text strings. Text strings are entered within single quote.

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

x

y

-1 -0.5 0 0.5 1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

xy

Circle of unit radiusEllipse

Page 69: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Some more PlottingPlotting for visualization –

>> help plotIf x and y are two vector of the same length then plot(x,y) plots x versus y.

Example –>> x= -pi:0.01:pi;>> y = cos (x);>> plot(x, y, ‘r.’); %A new window opens and draws the graph%

% in red color%>> grid on %places grid lines to the current axis%>> zoom on>> xlabel (‘x:-pi to pi’);>> ylabel (‘sin (x)’);

Page 70: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

-4 -3 -2 -1 0 1 2 3 4-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

x:-pi to pi

sin(

x)

Graph of sin from –pi to pi

Page 71: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

2-D Plotting : example-contd.

• GRID ON creates a grid on the current figure

• GRID OFF turns off the grid from the current figure

» x = 0:1:2*pi;

» y = sin(x);

» plot(x,y); grid on ;

Adding a Grid

Page 72: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

y yellow . Pointm megenta o circlec cyan x x-markr red + plusg green - solid lineb blue * starw white : dottedk black -. dash dot

-- dashedExample –

>> plot(x, y, ’g *’);

Various line types, plot symbols and colors can be used in the plotting –

Page 73: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Multiple Graphs on One Plot

� Built-in function hold >> p1 = plot(t, z, 'r-') >> hold on >> p2 = plot(t, -z, 'b--') >> hold on >> p3 = plot(T, Z, 'go') >> hold off

Page 74: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

For Comparison –

Multiple plots can be drawn on the same graph one above the other.by using –

>> plot(x, y, ‘r.’);>> hold on %Hold the above figure%>> plot(x, z, ‘b.’);>> hold off %Hold off from the above figure%

When multiple curves appear on the same axis, then create legendlabels and distinguish them.

>> legend(‘cos(x)’, ‘sin(x)’);

>> print %To obtain a hard copy of the current plot%

Multiple Plots on the same Graph

Page 75: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

-4 -3 -2 -1 0 1 2 3 4-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

cos(x)

sin(x)

Multiple Plots on the same Figure

legend

Page 76: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Adding additional plots to a figure

• HOLD ON holds the current plot

• HOLD OFF releases hold on current plot

» x = 0:.1:2*pi;

» y = sin(x);

» plot(x,y,'b')

» grid on;

» hold on;

» plot(x,exp(-x),'r:*');

Page 77: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Controlling Viewing Area

• ZOOM ON allows user to select viewing area

• ZOOM OFF prevents zooming operations

• AXIS sets axis range[xmin xmax ymin ymax]

» axis([0 2*pi 0 1]);

Page 78: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Graph Annotation

TITLE

TEXTor

GTEXT

XLABEL

YLABEL

LEGEND

Page 79: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Display Facilities

� title(.)

� xlabel(.)

� ylabel(.)

>>title(‘This is the sinus function’)

>>xlabel(‘x (secs)’)

>>ylabel(‘sin(x)’)0 10 20 30 40 50 60 70 80 90 100

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1This is the sinus function

x (secs)si

n(x)

Page 80: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Subplots on One Figure

� Built-in function subplot >> s1 = subplot (1, 3, 1) >> p1 = plot (t, z, 'r-') >> s2 = subplot (1, 3, 2) >> p2 = plot (t, -z, 'b--') >> s3 = subplot (1, 3, 3) >> p3 = plot (T, Z, 'go')

Page 81: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Subplots (Contd.)SUBPLOT- display multiple axes in the same figure wi ndow

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

subplot(#rows, #cols, index);

Page 82: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

subplot– create an array of (titled) plots in the same window

surf– 3D shaded surface graph

mesh– 3D mesh surface

plot – plots in 2D space (x, y)

plot3– plots in 3D space (x, y, z)

clear %Erases all the variables from the memory%

quit %Exit from the program%

help %help for any existing MATLAB command%

help plot %will display the details about plotting%

Some more commands for data visualization

Page 83: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

-3-2

-10

12

3

-2

0

2

-10

-5

0

5

Combination of Mesh and Contour

Example –%Produce a combination of mesh and contour plot %of the peaks surface%

>> [X,Y] = meshgrid(-3:.125:3); >> Z = peaks(X,Y);>> meshc(X,Y,Z); >> axis([-3 3 -3 3 -10 5])

PEAKS is a function of two variables, obtained by translating and scaling Gaussian distributions,which is useful for demonstratingMESH, SURF, PCOLOR, CONTOUR, etc.

MESHC(...) is the same as MESH(...)except that a contour plotis drawn beneath the mesh.

Page 84: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

3-D Surface Plotting

Page 85: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

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)

Page 86: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Logical Operators

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.

< Strictly Less than

<= Less than or equal to

> Strictly Greater than

>= Greater than or equal to

== Equal to

~= Not equal to

Page 87: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Flow Control

� if� for � while � break� ….

Page 88: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Control Structures

� If Statement Syntax

if (Condition_1)Matlab Commands

elseif (Condition_2)Matlab Commands

elseif (Condition_3)Matlab Commands

elseMatlab Commands

end

Some Dummy Examples

if ((a>3) & (b==5))Some Matlab Commands;

end

if (a<3)Some Matlab Commands;

elseif (b~=5) Some Matlab Commands;

end

if (a<3)Some Matlab Commands;

else Some Matlab Commands;

end

Page 89: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Control Structures

� For loop syntax

for i=Index_ArrayMatlab Commands

end

Some Dummy Examples

for i=1:100Some Matlab Commands;

end

for j=1:3:200Some Matlab Commands;

end

for m=13:-0.2:-21Some Matlab Commands;

end

for k=[0.1 0.3 -13 12 7 -9.3]Some Matlab Commands;

end

Page 90: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Control Structures

� While Loop Syntax

while (condition)Matlab Commands

end

Dummy Example

while ((a>3) & (b==5))Some Matlab Commands;

end

Page 91: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

M-File Programming

� Script M -Files o Automate a series of steps. o Share workspace with other scripts and the

command line interface. � Function M -Files o Extend the MATLAB language. o Can accept input arguments and return

output arguments. o Store variables in internal workspace.

Page 92: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

A MATLAB Program

� Always has one script M-File � Uses built-in functions as well as new

functions defined in function M-files � Saved as <filename>.m

� To run: filename only (no .m extension) >> <filename> � Created in Editor / Debugger

Page 93: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

M-File Editor / Debugger

� Create or open M-file in editor � >> edit <filename>.m� Type or copy commands� Use % for comments � Use ; to suppress output at runtime� Debugging mode

k >>

Page 94: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

All the commands executed on MATLAB prompt can be written intoa file and saved with extension ‘*.m’ . This is called script file or M-file.

Example –‘compute.m’This can be executed at any time by typing compute at the MATLABprompt.>> compute

We can edit the saved M-files, by using MATLAB editor.>> edit compute.m

Other MATLAB files are –Function file, Mat file (*.mat) and Mex file (*.mex)

Example –>> R = 5;>> [x, y] = circlefn(R) ; % Executing a function file %

Script File

Page 95: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Script File – ‘circle.m’

% CIRCLE – A script file to draw a unit circle% ------------------------------------------------------close allclear allformat longtheta = linspace(0,2*pi,100); % create vector thetax = cos(theta); % generate x-coordinatesy = sin(theta); % generate y-coordinatesplot(x,y); % plot the circlesaxis(‘equal’); % set equal scale on axesxlabel (‘x’); % label the x-axis with xylabel (‘y’); % label the y-axis with ytitle(‘Circle of unit radius’) % put a title

Page 96: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Use of M-File

Click to create a new M-File

• Extension “.m” • A text file containing script or function or program to run

Page 97: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Use of M-File

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

Save file as Denem430.m

Page 98: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Writing User Defined Functions

� Functions are m-files which can be executed by specifying some inputs and supply some desired outputs.

� The code telling the Matlab that an m-file is actually a function is

� You should write this command at the beginning of the m-file and you should save the m-file with a file name same as the function name

function out1=functionname(in1)function out1=functionname(in1,in2,in3)function [out1,out2]=functionname(in1,in2)

Page 99: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Writing User Defined Functions

� Examples� Write a function : out=squarer (A, ind)

� Which takes the square of the input matrix if the input indicator is equal to 1

� And takes the element by element square of the input matrix if the input indicator is equal to 2

Same Name

Page 100: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Writing User Defined Functions � Another function which takes an input array and returns the sum and product

of its elements as outputs

� The function sumprod(.) can be called from command window or an m-file as

Page 101: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Notes:

� “%” is the neglect sign for Matlab (equaivalent of “//” in C). Anything after it on the same line is neglected by Matlab compiler.

� Sometimes slowing down the execution is done deliberately for observation purposes. You can use the command “pause” for this purpose

pause %wait until any keypause(3) %wait 3 seconds

Page 102: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Useful Commands

� The two commands used most by Matlabusers are

>>help functionname

>>lookfor keyword

Page 103: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

103

Summary

• help command → Online help• lookfor keyword → Lists related commands• which → Version and location info• clear → Clears the workspace• clc → Clears the command window• diary filename → Sends output to file• diary on/off → Turns diary on/off• who, whos → Lists content of the workspace• more on/off → Enables/disables paged output• Ctrl+c → Aborts operation• … → Continuation• % → Comments

Page 104: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Questions ?

Page 105: MATLAB BASICS - LNM Institute of Information Technology · MATLAB BASICS Vector: Array with one dimension Matrix: Array with more than one dimension Size of an array is specified

Thank You…