Вы находитесь на странице: 1из 48

SAJID GUL KHAWAJA

Introduction to MATLAB
1
Introduction
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.
2
MATrix LABoratory
3
www.mathworks.com

Advantages of MATLAB
Ease of use
Platform independence
Predefined functions
Plotting
Disadvantages of MATLAB
Can be slow
Commercial software
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

4
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;
5
Variables Types
Variable types
Numeric
Logical
Character and string
Cell and Structure
Function handle
6
Variables (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:
>> tutorial = 1234;
>> tutorial = 1234
tutorial =
1234
NOTE: when a semi-colon ; is
placed at the end of each command,
the result is not displayed.
7
Variables (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.
8
Special 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.
>> circ1 = 2 * pi * 10;
>> pi = 3;
>> circ2 = 2 * pi * 10;
Never change the values of predefined variables.
9
Special 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.
10
Interactive Commands
Format of output
Defaults to 4 decimal places
Can change using format statement
format long changes output to 15 decimal places
11
Operators (arithmetic)
+ addition
- subtraction
* multiplication
/ division
^ power
complex conjugate transpose

12
Operators
Scalar arithmetic operations
Operation MATLAB form
Exponentiation: ^ a
b
a^b
Multiplication: * ab a*b
Right Division: / a / b = a/b a/b
Left Division: \ a \ b = b/a a\b
Addition: + a + b a+b
Subtraction: - a b a-b
MATLAB ignores white space between variables
and operators
13
Operators (relational, logical)
== Equal to
~= Not equal to
< Strictly smaller
> Strictly greater
<= Smaller than or equal to
>= Greater than equal to
& And operator
| Or operator

14
Operators (Element by Element)


.* element-by-element multiplication
./ element-by-element division
.^ element-by-element power

15
Order 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
16
Vectors, Matrices and Arrays
Vectors
Array Operations
Matrices
17
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.
18
Vectors, 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.
19
Vectors, Matrices and Arrays
Arrays
20
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)
1 2
3 4
5 6
a= 3x2 matrix 6 elements
b=[1 2 3 4] 1x4 array 4 elements, row vector
c=
1
3
5
3x1 array 3 elements, column vector
a(2,1)=3 b(3)=3 c(2)=3
Row # Column #
21
Vectors
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:
>> x = [ 0 0.25*pi 0.5*pi 0.75*pi pi ] OR x = [ 0 0.25*pi, 0.5*pi, 0.75*pi , pi]
x =
0 0.7854 1.5708 2.3562 3.1416
>> y = [ 0; 0.25*pi; 0.5*pi; 0.75*pi; pi ]
y =
0
0.7854
1.5708
2.3562
3.1416
x is a row vector.

y is a column vector.
22
Vectors (cont)
Vector Addressing A vector element is addressed in MATLAB with an
integer index enclosed in parentheses.
Example:
>> x(3)
ans =
1.5708
1
st
to 3
rd
elements 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:
>> x(1:3)
ans = 0 0.7854 1.5708
NOTE: MATLAB index starts at 1.
3
rd
element of vector x
23
Vectors
Some useful commands:
x = start:end
create row vector x starting with start,
counting by one, ending at end
x =
start:increment:end
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.
24
Arrays and Matrices
25
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
>> g = [1:4];
>> h = [ g g ];
1 1
2 2
3 3
4 4
h=
Long Array, Matrix
t =1:10

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 = [1:4; 5:8]

x =
1 2 3 4
5 6 7 8


26
Matrices 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.
recall:
f =
1 2 3
4 5 6
h =
2 4 6
1 3 5
Example:
>> f(2,3)
ans =
6
>> h(:,1)
ans =
2
1
27
Generating 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
28
Array 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:
>> f = [ 1 2; 3 4]
f =
1 2
3 4
>> g = 2*f 1
g =
1 3
5 7
Each element in the array f is
multiplied by 2, then subtracted
by 1.
31
Array 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 a
b
a .^ b
Example:
>> x = [ 1 2 3 ];
>> y = [ 4 5 6 ];
>> z = x .* y
z = 4 10 18

Each element in x is multiplied by
the corresponding element in y.
32
Matrices 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 = A*B
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 A*A, 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.
33

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 Input
34
The disp (Array/String) function
>> disp( 'Hello' )
Hello
>> disp(5)
5
>> disp( [ Hello ' World!' ] )
Hello World!
>> name = World!';
>> disp( [ 'Hello ' name ] )
Hello World!
Displaying Data in MATLAB
35
Display 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.
36
Plotting
For more information on 2-D plotting, type help graph2d
Plotting a point:
>> plot ( variablename, symbol)
the function plot ()
creates a graphics
window, called a Figure
window, and named by
default Figure No. 1
Example : Complex number
>> z = 1 + 0.5j;
>> plot (z, .)
37
Basic Task: Plot the function sin(x) between
0x4
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
38
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
39
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
1
This is the sinus function
x (secs)
s
i
n
(
x
)
40

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
xlabel('x = 0:2\pi')
ylabel('Sine of x')
title('Plot of the Sine
Function')


41
MATLAB Graphs
t = 0:pi/100:2*pi;
y1=sin(t);
y2=sin(t+pi/2);
plot(t,y1,t,y2)
grid on
42
Multiple Graphs
Selection Programming
Flow Control
Loops
43
Flow Control (if/else)
Simple if statement:
if logical expression
commands
end
Example: (Nested)
if d <50
count = count + 1;
disp(d);
if b>d
b=0;
end
end
Example: (else and elseif clauses)
if temperature > 100
disp (Too hot equipment malfunctioning.)
elseif temperature > 90
disp (Normal operating range.);
elseif (Below desired operating range.)
else
disp (Too cold turn off equipment.)
end
44
Switch, 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
45
Loops
for loop
for variable = expression
commands
end
while loop
while expression
commands
end
Example (for loop):
for t = 1:5000
y(t) = sin (2*pi*t/10);
end
Example (while loop):
EPS = 1;
while ( 1+EPS) >1
EPS = EPS/2;
end
EPS = 2*EPS
o the break statement
break is used to terminate the execution of the loop.
46
M-Files
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.
So far, we have discussed the execution of commands in the
command window. But a more practical way is to create a M-file.
47
User-Defined Function
Add the following command in the beginning of your m-file:
function [output variables] = function_name (input variables);
NOTE: the function_name should
be the same as your file name to
avoid confusion.
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.
48
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
Built-in MATLAB Functions
49
Getting 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
50

Вам также может понравиться