Title: Sajid GUL khawaja
1Introduction to MATLAB
2Introduction
- What is MATLAB ?
- MATLAB is a computer program that combines
computation and visualization power that makes it
particularly useful tool for engineers. - MATLAB is an executive program, and a script can
be made with a list of MATLAB commands like other
programming language.
- MATLAB Stands for MATrix LABoratory.
- The system was designed to make matrix
computation particularly easy.
- The MATLAB environment allows the user to
- manage variables
- import and export data
- perform calculations
- generate plots
- develop and manage files for use with MATLAB.
3MATrix LABoratory
- www.mathworks.com
- Advantages of MATLAB
- Ease of use
- Platform independence
- Predefined functions
- Plotting
- Disadvantages of MATLAB
- Can be slow
- Commercial software
4MATLAB 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
5Variables
- 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
Example gtgtx5 gtgtx12
6Variables Types
- Variable types
- Numeric
- Logical
- Character and string
- Cell and Structure
- Function handle
7Variables (cont)
- Variable names
- Must start with a letter
- Youll get an error if this doesnt happen
- May contain only letters, digits, and the
underscore _ - MATLAB is case sensitive, i.e. one OnE are
different variables. - MATLAB only recognizes the first 31 characters in
a variable name. - Assignment statement
- Variable number
- Variable expression
- Example
- gtgt tutorial 1234
- gtgt tutorial 1234
- tutorial
- 1234
NOTE when a semi-colon is placed at the end
of each command, the result is not displayed.
8Variables (cont)
- Dont name your variables the same as functions
- min, max, sqrt, cos, sin, tan, mean, median, etc
- Funny things happen when you do this
- MATLAB reserved words dont work either
- i, j, eps, nargin, end, pi, date, etc
- i, j are reserved as complex numbers initially
- Will work as counters in my experience so they
can be redefined as real numbers - 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.
9Special Variables
- Special Values
- 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. - gtgt circ1 2 pi 10
- gtgt pi 3
- gtgt circ2 2 pi 10
- Never change the values of predefined variables.
10Special Variables (cont)
- Special variables
- ans default variable name for the result
- pi ? 3.1415926
- eps ? 2.2204e-016, smallest amount by which 2
numbers can differ. - Inf or inf ?, infinity
- NaN or nan not-a-number
- Commands involving variables
- who lists the names of defined variables
- whos lists the names and sizes of defined
variables - clear clears all varialbes, reset the default
values of special variables. - clear name clears the variable name
- clc clears the command window
- clf clears the current figure and the graph
window.
11Interactive Commands
- Format of output
- Defaults to 4 decimal places
- Can change using format statement
- format long changes output to 15 decimal places
12Operators (arithmetic)
- addition
- - subtraction
- multiplication
- / division
- power
- complex conjugate transpose
13Operators
- Scalar arithmetic operations
- Operation MATLAB form
- Exponentiation ab ab
- Multiplication ab ab
- Right Division / a / b a/b a/b
- Left Division \ a \ b b/a a\b
- Addition a b ab
- Subtraction - a b a-b
- MATLAB ignores white space between variables and
operators
14Operators (relational, logical)
- Equal to
- Not equal to
- lt Strictly smaller
- gt Strictly greater
- lt Smaller than or equal to
- gt Greater than equal to
- And operator
- Or operator
15Operators (Element by Element)
- . element-by-element multiplication
- ./ element-by-element division
- . element-by-element power
16Order of Operations
- Parentheses
- Exponentiation
- Multiplication and division have equal precedence
- Addition and subtraction have equal precedence
- Evaluation occurs from left to right
- When in doubt, use parentheses
- MATLAB will help match parentheses for you
17Vectors, Matrices and Arrays
- Vectors
- Array Operations
- Matrices
18Vectors, Matrices and Arrays
- 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 and matrices.
19Vectors, Matrices and Arrays
- Vector Array with one dimension
- Matrix Array with more than one dimension
- Size of an array is specified by the number of
rows and the number of columns, with the number
of rows mentioned first (For example n x m
array). - Total number of elements in an array is the
product of the number of rows and the number of
columns.
20Arrays
- 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
arr(3,2)
Row 4
Col 1
Col 2
Col 3
Col 4
Col 5
211 2 3 4 5 6
a
3x2 matrix ? 6 elements
b1 2 3 4
1x4 array ? 4 elements, row vector
1 3 5
3x1 array ? 3 elements, column vector
c
a(2,1)3 b(3)3 c(2)3
Row
Column
22Vectors
- A row vector in MATLAB can be created by an
explicit list, starting with a left bracket,
entering the values separated by spaces (or
commas) and closing the vector with a right
bracket. - A column vector can be created the same way, and
the rows are separated by semicolons. - Example
- gtgt x 0 0.25pi 0.5pi 0.75pi pi OR
x 0 0.25pi, 0.5pi, 0.75pi , pi - x
- 0 0.7854 1.5708 2.3562
3.1416 - gtgt y 0 0.25pi 0.5pi 0.75pi pi
- y
- 0
- 0.7854
- 1.5708
- 2.3562
- 3.1416
x is a row vector. y is a column vector.
23Vectors (cont)
- Vector Addressing A vector element is addressed
in MATLAB with an integer index enclosed in
parentheses. - Example
- gtgt x(3)
- ans
- 1.5708
? 3rd element of vector x
- The colon notation may be used to address a block
of elements. - (start increment end)
- start is the starting index, increment is the
amount to add to each successive index, and end
is the ending index. A shortened format (start
end) may be used if increment is 1. - Example
- gtgt x(13)
- ans 0 0.7854 1.5708
? 1st to 3rd elements of vector x
NOTE MATLAB index starts at 1.
24Vectors
Some useful commands
x startend create row vector x starting with start, counting by one, ending at end
x startincrementend create row vector x starting with start, counting by increment, ending at or before end
length(x) returns the length of vector x
y x transpose of vector x
dot (x, y) returns the scalar dot product of the vector x and y.
25Arrays and Matrices
- Initializing with Shortcut Expressions
- first increment last
- Colon operator a shortcut notation used to
initialize arrays with thousands of elements - gtgt x 1 2 10
- gtgt angles (0.01 0.01 1) pi
- Transpose operator (') swaps the rows and
columns of an array - gtgt g 14
- gtgt h g' g'
h
26Long Array, Matrix
- t 110
-
- t
- 1 2 3 4 5 6 7 8 9 10
- k 2-0.5-1
-
- k
- 2 1.5 1 0.5 0 -0.5 -1
- B 14 58
- x
- 1 2 3 4
- 5 6 7 8
27Matrices Addressing
- Matrix Addressing
- -- matrixname(row, column)
- -- colon may be used in place of a row or column
reference to select the entire row or column.
- Example
- gtgt f(2,3)
- ans
- 6
- gtgt h(,1)
- ans
- 2
- 1
recall f 1 2 3 4 5
6 h 2 4 6 1 3 5
28Generating Vectors/Matrices 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
29Subarrays
- Subarrays
- 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(5end) is the array 5 6 7 8
- arr4 1 2 3 4 5 6 7 8 9 10 11 12
- arr4(2end, 2end)
30Subarrays (cont)
- Subarrays
- Assigning a Scalar to a Subarray A scalar value
on the right-hand side of an assignment statement
is copied into every element specified on the
left-hand side. - gtgt arr4 1 2 3 4 5 6 7 8 9 10 11 12
- gtgt arr4(12, 12) 1
- arr4
- 1 1 3 4
- 1 1 7 8
- 9 10 11 12
31Array Operations
- Scalar-Array Mathematics
- For addition, subtraction, multiplication, and
division of an array by a scalar simply apply the
operations to all elements of the array. - Example
- gtgt f 1 2 3 4
- f
- 1 2
- 3 4
- gtgt g 2f 1
- g
- 1 3
- 5 7
Each element in the array f is multiplied by 2,
then subtracted by 1.
32Array Operations (cont)
- Element-by-Element Array-Array Mathematics.
Operation Algebraic Form MATLAB
Addition a b a b
Subtraction a b a b
Multiplication a x b a . b
Division a ? b a ./ b
Exponentiation ab a . b
- Example
- gtgt x 1 2 3
- gtgt y 4 5 6
- gtgt z x . y
- z 4 10 18
Each element in x is multiplied by the
corresponding element in y.
33Matrices Some Useful Commands
Length(A) returns the larger of the number of rows or columns in A.
Size(A) for a m x n matrix A, returns the row vector m,n containing the number of rows and columns in matrix.
Transpose B A
Identity Matrix 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.
Addition and subtraction C A B C A B
Scalar Multiplication B ?A, where ? is a scalar.
Matrix Multiplication C AB
Matrix Inverse B inv(A), A must be a square matrix in this case. rank (A) ? returns the rank of the matrix A.
Matrix Powers B A.2 ? squares each element in the matrix C A A ? computes AA, and A must be a square matrix.
Determinant det (A), and A must be a square matrix.
A, B, C are matrices, and m, n, ? are scalars.
34Initializing with Keyboard Input
- 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)
35Displaying Data in MATLAB
The disp (Array/String) function gtgt disp( 'Hello'
) Hello gtgt disp(5) 5 gtgt disp( Hello '
World!' ) Hello World! gtgt name World!' gtgt
disp( 'Hello ' name ) Hello World!
36Display Windows
- Graphic (Figure) Window
- Displays plots and graphs
- Created in response to graphics commands.
- M-file editor/debugger window
- Create and edit scripts of commands called
M-files.
37Plotting
- For more information on 2-D plotting, type help
graph2d - Plotting a point
- gtgt plot ( variablename, symbol)
Example Complex number gtgt z 1 0.5j gtgt plot
(z, .)
38Basic Task Plot the function sin(x) between
0x4p
- Create an x-array of 100 samples between 0 and
4p. - Calculate sin(.) of the x-array
- Plot the y-array
-
gtgtxlinspace(0,4pi,100)
gtgtysin(x)
gtgtplot(y)
39Display Facilities
Example gtgtxlinspace(0,4pi,100) gtgtysin(x) gtgt
plot(y) gtgtplot(x,y)
Example gtgtstem(y) gtgtstem(x,y)
40Display Facilities
- title(.)
- xlabel(.)
- ylabel(.)
gtgttitle(This is the sinus function)
gtgtxlabel(x (secs))
gtgtylabel(sin(x))
41MATLAB Graphs
- x 0pi/1002pi
- y sin(x)
- plot(x,y)
- xlabel('x 02\pi')
- ylabel('Sine of x')
- title('Plot of the Sine Function')
42Multiple Graphs
- t 0pi/1002pi
- y1sin(t)
- y2sin(tpi/2)
- plot(t,y1,t,y2)
- grid on
43Selection Programming
44Flow Control (if/else)
- Simple if statement
- if logical expression
- commands
- end
- Example (Nested)
- if d lt50
- count count 1
- disp(d)
- if bgtd
- b0
- end
- end
- Example (else and elseif clauses)
- if temperature gt 100
- disp (Too hot equipment malfunctioning.)
- elseif temperature gt 90
- disp (Normal operating range.)
- elseif (Below desired operating range.)
- else
45Switch, Case, and Otherwise
- switch input_num
- case -1
- input_str 'minus one'
- case 0
- input_str 'zero'
- case 1
- input_str 'plus one'
- case -10,10
- input_str '/- ten'
- otherwise
- input_str 'other value'
- end
- More efficient than elseif statements
- Only the first matching case is executed
46Loops
- Example (for loop)
- for t 15000
- y(t) sin (2pit/10)
- end
- Example (while loop)
- EPS 1
- while ( 1EPS) gt1
- EPS EPS/2
- end
- EPS 2EPS
- for loop
- for variable expression
- commands
- end
- while loop
- while expression
- commands
- end
- the break statement
- break is used to terminate the execution of the
loop.
47M-Files
So far, we have discussed the execution of
commands in the command window. But a more
practical way is to create a M-file.
- The M-file is a text file that consists a group
of MATLAB commands. - MATLAB can open and execute the commands exactly
as if they were entered at the MATLAB command
window. - To run the M-files, just type the file name in
the command window. (make sure the current
working directory is set correctly) - All MATLAB commands are M-files.
48User-Defined Function
- Add the following command in the beginning of
your m-file - function output variables function_name
(input variables)
- calling your function
- -- a user-defined function is called by the name
of the m-file, not the name given in the function
definition. - -- type in the m-file name like other pre-defined
commands.
- Comments
- -- The first few lines should be comments, as
they will be displayed if help is requested for
the function name. the first comment line is
reference by the lookfor command.
49Built-in MATLAB Functions
- result function_name( input )
- abs, sign
- log, log10, log2
- exp
- sqrt
- sin, cos, tan
- asin, acos, atan
- max, min
- round, floor, ceil, fix
- mod, rem
- help elfun ? help for elementary math functions
50Getting Help
- For help type one of following commands in the
command window - help lists all the help topic
- help topic provides help for the specified
topic - help command provides help for the specified
command - help help provides information on use of the
help command - helpwin opens a separate help window for
navigation - lookfor keyword Search all M-files for keyword