Buscar

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 52 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 52 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 52 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introduction to Matlab
By: İ.Yücel Özbek
Outline:
 What is Matlab?
 Matlab Screen
 Variables, array, matrix, indexing 
 Operators (Arithmetic, relational, logical )
 Display Facilities
 Flow Control
 Using of M-File
 Writing User Defined Functions
 Conclusion
What is Matlab?
 Matlab MATLAB (Matrix laboratory) is 
basically a high level language which has 
many specialized toolboxes for making things 
easier for us
Assembly
High Level 
Languages such as 
C, Pascal etc.
Matlab
What are we interested in?
 Matlab (C++ and LabView) are required in 
almost every research position.
 Advantage: Good toolbox library
 Disavantage: 
 Longer processing time
 Price
Free Clones
 Octave
 Scilab
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
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;
Getting help
 The help command >> help
 The help window >> helpwin
 The lookfor command >> lookfor
 CANCEL >>CTR C
 GOOGLE: Matlab...
» lookfor scholes
BLSLAMBDA Black-Scholes elasticity. 
BLSPRICE Black-Scholes put and call pricing. 
BLSRHO Black-Scholes sensitivity to interest rate change. 
....
» help blsprice
BLSPRICE Black-Scholes put and call pricing. 
[CALL,PUT] = BLSPRICE(SO,X,R,T,SIG,Q) returns the value of
call and put options using the Black-Scholes pricing formula.SO is
the current asset price, X is the exercise price, R is the risk-
free
....
» lookfor scholes
BLSLAMBDA Black-Scholes elasticity. 
BLSPRICE Black-Scholes put and call pricing. 
BLSRHO Black-Scholes sensitivity to interest rate change. 
....
» help blsprice
BLSPRICE Black-Scholes put and call pricing. 
[CALL,PUT] = BLSPRICE(SO,X,R,T,SIG,Q) returns the value of
call and put options using the Black-Scholes pricing formula.SO is
the current asset price, X is the exercise price, R is the risk-
free
....
Array, Matrix
 a vector x = [1 2 5 1]
x =
1 2 5 1
 a matrix x = [1 2 3; 5 1 4; 3 2 -1]
x =
1 2 3
5 1 4
3 2 -1
 transpose y = x’ y =
1
2
5
1
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
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
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.
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.
Operators (arithmetic)
+ addition
- subtraction
* multiplication
/ division
^ power
‘ complex conjugate transpose
Matrices Operations
Given A and B:
Addition Subtraction Product Transpose
Operators 
Element by Element
.* element-by-element multiplication
./ element-by-element division
.^ element-by-element power
FIND fuction
X = [1 0 4 -3 0 0 0 8 6];
find(X > 2)
ans =
3 8 9
The use of “.” – “Element” Operation
K= x^2
Erorr:
??? Error using ==> mpower Matrix must be square.
B=x*y
Erorr:
??? Error using ==> mtimes Inner matrix dimensions must agree.
A = [1 2 3; 5 1 4; 3 2 1]
A =
1 2 3
5 1 4
3 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 
Math Functions
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
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;
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
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
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)
si
n(
x)
Display Facilities
 HOLD ON holds the current plot
 HOLD OFF releases hold on current plot
 HOLD toggles the hold state
 SUBPLOT- display multiple axes
subplot(#rows, #cols, index)
»subplot(2,2,1); 
» …
»subplot(2,2,2)
» ...
»subplot(2,2,3)
» ...
»subplot(2,2,4)
» ...
»subplot(2,2,1); 
» …
»subplot(2,2,2)
» ...
»subplot(2,2,3)
» ...
»subplot(2,2,4)
» ...
Alternative Scales for Axes
SEMILOGY
log Y
linear X
PLOTYY
2 sets of
linear axes
LOGLOG
Both axes 
logarithmic
SEMILOGX
log X
linear Y
»other_axes
Surface Plot Example
» t = 0.001:0.001:0.03;
» s = 90:0.2:100;
» [gt, gs] = meshgrid(t,s);
» r = 0.1;
» k = 95;
» [call, put] = 
blsprice(gs,k,r,gt,0.3);
» surf(t,s,call)
» xlabel('Time to Maturity')
» ylabel('Spot Price’);
» t = 0.001:0.001:0.03;
» s = 90:0.2:100;
» [gt, gs] = meshgrid(t,s);
» r = 0.1;
» k = 95;
» [call, put] = 
blsprice(gs,k,r,gt,0.3);
» surf(t,s,call)
» xlabel('Time to Maturity')
» ylabel('Spot Price’);
»surface_ex
3-D Surface Plotting
»surf_3d
Specialized Plotting Routines
»spec_plots
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
Flow Control
 if 
 for 
 while 
 break 
 …. 
Control Structures 
 If Statement Syntax
if (Condition_1)
Matlab Commands
elseif (Condition_2)
Matlab Commands
elseif (Condition_3)
Matlab Commands
else
Matlab 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
Control Structures 
 For loop syntax
for i=Index_Array
Matlab Commands
end
Some Dummy Examples
for i=1:100
Some Matlab Commands;
end
for j=1:3:200
Some Matlab Commands;
end
for m=13:-0.2:-21
Some Matlab Commands;
end 
for k=[0.1 0.3 -13 12 7 -9.3]
Some Matlab Commands;
end
Control Structures
 While Loop Syntax
while (condition)
Matlab Commands
end
Dummy Example
while ((a>3) & (b==5))
Some Matlab Commands;
end
Use of M-File
Click to create 
a new M-File
• Extension “.m”
• A text file containing script or function or program to run
Use of M-File
If you include “;” at the 
end of each statement,
result will not be shown 
immediatelySave file as Denem430.m
Use of M-File
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)
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
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
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 key
pause(3) %wait 3 seconds 
Complex Numbers 
 Another function which takes an input array and returns the sum and product 
of its elements as outputs
 ≫ z = 2+1.5*j, real(z)
 to get the result
 z =
 2.000+1.500i
 ans =
 2
Variables 
>>I = int8(zeros(100)); % Creates an intermediate array 
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?
» str = 'Hi there,'
str =
Hi there, 
» str2 = 'Isn''t MATLAB great?'
str2 =
Isn't MATLAB great?
»string_array
1x9 vectorstr = H i t h e r e ,
String Arrays:
» str ='Hi there,';
» str1='Everyone!';
» new_str=[str, ' ', str1]
new_str =
Hi there, Everyone! 
» str2 = 'Isn''t MATLAB great?';
» new_str2=[new_str; str2]
new_str2 =
Hi there, Everyone!
Isn't MATLAB great?
» str ='Hi there,';
» str1='Everyone!';
» new_str=[str, ' ', str1]
new_str =
Hi there, Everyone! 
» str2 = 'Isn''t MATLAB great?';
» new_str2=[new_str; str2]
new_str2 =
Hi there, Everyone!
Isn't MATLAB great?
1x19 vector
1x9 vectors
»string_cat
Using [ ] operator:
Each row must be 
same length
Row separator:
semicolon (;)
Column separator:
space / comma (,)
For strings of different length:
• STRVCAT
• STR2MAT » new_str3 = strvcat(str, str2)
new_str3 =
Hi there, 
Isn't MATLAB great?
» new_str3 = strvcat(str, str2)
new_str3 =
Hi there, 
Isn't MATLAB great?
2x19 matrix
2x19 matrix
(zero padded)
1x19 vectors
String Arrays:
 String Comparisons
 STRCMP - compare whole strings
 STRNCMP - compare first ‘N’ characters
 FINDSTR - finds substring within a larger 
string
 Converting between numeric & string arrays:
 NUM2STR - convert from numeric to string 
array
 STR2NUM - convert from string to numeric 
array
File I/O : High-level routines:
 SAVE & LOAD
 Other file formats:
 csvread - comma-separated ASCII 
files
 dlmread - general ASCII delimited 
files
 textread - read formatted data
load fname
load fname x y z
load fname -ascii
load fname -mat
load fname*
load fname
load fname x y z
load fname -ascii
load fname -mat
load fname*
save fname
save fname x y z
save fname data*
save fname -ascii
save fname -v4
save fname
save fname x y z
save fname data*
save fname -ascii
save fname -v4
Use wildcard (*) for 
similar variables
Low-level text file I/O:
This is a magic matrix
17 23 4 10 11
24 5 6 12 18
1 7 13 19 25
8 14 20 21 2
15 16 22 3 9
ASCII text file: magic5.txt
» fid=fopen('magic5.txt', 'rt');
» title = fgetl(fid);
» [data,count]=fscanf(fid, '%i');
» data = reshape(data, 5, 5);
» fclose(fid);
» fid=fopen('magic5.txt', 'rt');
» title = fgetl(fid);
» [data,count]=fscanf(fid, '%i');
» data = reshape(data, 5, 5);
» fclose(fid);
»help fprintf
Reading data from text file:
» fid = fopen('magic5.txt', 'wt');
» fprintf(fid, '%s\n', 'This is a magic matrix');
» fprintf(fid, '%i\t%i\t%i\t%i\t%i\n', magic(5));
» fclose(fid);
» fid = fopen('magic5.txt', 'wt');
» fprintf(fid, '%s\n', 'This is a magic matrix');
» fprintf(fid, '%i\t%i\t%i\t%i\t%i\n', magic(5));
» fclose(fid);
Writing data to text file:
% This is a comment, it starts with a “%”
clc % Clear command window
clear all % Clear variables in MatLab
y = 5*3 + 2^2; % simple arithmetic
x = [1 2 4 5 6]; % create the vector “x”
x1 = x.^2; % square each element in x
E = sum(abs(x).^2); % Calculate signal energy
P = E/length(x); % Calculate av signal
Basic Matlab Operations
% Calculate av signal power
x2 = x(1:3); % Select first 3 elements in x
z = 1+i; % Create a complex number
a = real(z); % Pick off real part
b = imag(z); % Pick off imaginary part
plot(x); % Plot the vector as a signal
t = 0:0.1:100; % Generate sampled time
x3=exp(-t).*cos(t); % Generate a discrete signal 
plot(t, x3, ‘x’);% Plot points 
Basic Matlab Operations
%This shows how to save a table in Excel
columnHeader = {'t', 'x3'}; 
xlswrite('Table_1.xls',columnHeader,'Sheet1','A1'); 
%Saves the heather in Excel
xlswrite('Table_1.xls',[t; x3]','Sheet1','A2'); 
%Saves the variables in Excel
%This reads the same table in Excel
excel_data = xlsread('Table_1.xls',);
Basic Matlab Operations
Questions
Thank You…

Mais conteúdos dessa disciplina