Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Matlab Intro PDF
Matlab Intro PDF
Matlab
Objetivo
Presentar una introduccin a la programacin
con Matlab y el uso de su ambiente de desarrollo.
2
Matlab
El nombre MATLAB proviene de Matrix Laboratory.
El paquete de Matlab tiene un gran nmero de
funciones y toolboxes con los cuales se pueden
resolver una amplia variedad de problemas de
computo, especialmente aquellos relacionados con
operaciones matriciales y vectoriales.
Precisin y formatos: Por defecto tiene un formato corto, pero se pueden usar otros
>> format long (14 cifras significativas)
>> format short (5 cifras significativas)
>> format short e (notacin exponencial)
>> format long e (notacin exponencial)
>> format rat (aproximacin racional)
Example:
>>x=5;
>>x1=2;
Asignar
a = 3, b = 4
Listar Ejemplo de nmeros vlidos:
ans 3 -99
who 0.0001 9.6397238
whos 1.60210e-20 6.02252e23
1i -3.14159j
Eliminar
3e5i
clear b
clear all
Nmeros Complejos
Forma binmica
z = 3 + 4i
Cadenas de caracteres
'Esto es una cadena'
Esto no
Funciones
(x3+1)/x
help elfun
8
sin
asin 6
4
cos
acos 2
0
tan
atan -2
-4
exp
log
-6
ezplot (x3+1)/x -2 0
x
2
Vectores
Edicin Normas
u = [1 2 3] norm(v,2)
v = [1,2,3] norm(v,1)
w = [1;2;3] norm(v,inf)
w = [1 1
0.8
2 0.6
0.4
3] 0.2
Progresivos 0
-0.2
0:0.1:10 -0.4
-0.6
linspace(0,1,11) -0.8
-1
-1 -0.6 -0.2 0.2 0.6 1
Vectores y Matrices
> x = [1 2 5 1]
x=
1 2 5 1
> w = [1 2 3; 5 1 4; 3 2 -1]
w=
1 2 3
5 1 4
3 2 -1
Transpuesta y = x y=
1
2
5
1
Intervalos en Vectores y Matrices
> 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
> A=[x y]
1 2 4 5
> B = [x ; y]
12
45
> C = [x y ;z]
Error:
??? Error using ==> vertcat CAT arguments dimensions are not consistent.
Operaciones con vectores
Edicin Bloques
A = [1,2;3,4] M = [A,B;B,A]
B = [-1 -2 Sub-matrices
-3 -4]
M41 = M(1:3,2:4)
Elemento: A(2,1)
fil = [1,2,4]
Fila: A(2,:) col = [1,3,4]
Producto: * .* det(A)
Potencia: ^ .^ Inversa
E.g.: R = randn(3,4,5);
p( x ) = x 5x + 343 x 7
2
3
3 2
Valor de p en x: polyval(p,x)
Races: roots(p)
Multiplicacin: conv(p,q)
>> x = [0:0.1:2*pi] 1
0.8
>> y = sin(x)
0.6
0.2
En el ejemplo, el estilo de la 0
-0.2
lnea se defini mediante: -0.4
Linea: - -- : .- -1
0 1 2 3 4 5 6 7
Graficas de matrices
MATLAB considera cada columna como un set de datos distinto
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
1 2 3 4 5 6 7 8 9 10
Grficos: Funciones bsicas
Multiples pares de argumentos x-y se pueden conjuntar en una sla
grfica
>> x = 0:pi/100:2*pi;
>> y = sin(x);
>> y2 = sin(x-.25);
>> y3 = sin(x-.5);
>> plot(x,y,x,y2,x,y3)
Grficos: Funciones bsicas
Hold on / off es otra manera de dibujar distintas series en la misma
grfica Sin Plots
2
-1
>> legend('sin(x)', '2*sin(x)');
>> axis([0 6.2 -2 2]) -1.5
>> xlabel(x);
>> ylabel(y); -2
0 1 2 3 4 5 6
x
>> hold off
Grficos: Funciones bsicas
Plotting data
0.9
0.8
0.7
0.6
0.5
0.4
>> results = rand(10, 3)
>> plot(results, 'b*') 0.3
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0 2 4 6 8 10 12
Grficar: sin(x) para el intervalo 0x4
Crear un arreglo x de 100 muestras entre 0 y 4.
Calcular el seno del arreglo x
Graficar el resultado y 1
0.8
0.6
0.2
>> y=sin(x); 0
-0.2
-0.6
-0.8
-1
0 10 20 30 40 50 60 70 80 90 100
Grficar: e-x/3sin(x) para 0x4
Crear un arreglo x de 100 muestras entre 0 y 4.
Calcular el seno del arreglo x
Calcular el exponente e-x/3 0.7
0.6
0.4
0.2
0.1
>> x=linspace(0,4*pi,100); 0
-0.1
-0.3
0.6
0.5
0.4
0.3
0.2
0.1
>> x=linspace(0,4*pi,100);
0
-0.1
>> y=sin(x);
-0.2
-0.3
0 10 20 30 40 50 60 70 80 90 100
0.5
>> plot(y)
0.4
0.3
0.1
>> stem(y) 0
-0.1
-0.3
0 10 20 30 40 50 60 70 80 90 100
Display Facilities
0.7
0.6
0.5
plot(.) 0.4
0.3
0.2
Example: 0.1
>>x=linspace(0,4*pi,100); 0
>>y=sin(x); -0.1
>>plot(y) -0.2
>>plot(x,y)
-0.3
0 10 20 30 40 50 60 70 80 90 100
stem(.) 0.7
0.6
0.5
0.4
0.3
0.2
Example: 0.1
>>stem(y) 0
>>stem(x,y) -0.1
-0.2
-0.3
0 10 20 30 40 50 60 70 80 90 100
Tipos de grficos (2D)
Cartesianas
ezplot 90 1
120 60
fplot 0.75
>> z1=[1+2j;2+6j;3-4j;-5-3j;-1+3j];
>> plot(z1)
>> ylabel('Imaginary');
>> xlabel('Real');
Grficos de datos Complejos
La instruccin feather permite graficar valores complejos a
manera de flechas en grfica.
z1=1+2j;
z2=3+3j;
z3=3+j;
feather(z1,'r');
hold on
feather(z2,'b');
feather(z3,'g');
feather(z3,'k');
ylabel('Imaginary');
xlabel('Real');
Grficos de datos Complejos (Polar)
La instrucciones compass(z) y compass(x,y) permiten
graficar datos complejos de manera polar
Notar que z sigue siendo un mmero complejo en formato
rectangular
z1=3+3i;
compass(z1)
hold on
compass(4,-3)
Curvas en 3D
t = 0:pi/500:4*pi;
x = sin(t); y = cos(t); z = t;
plot3(x,y,z) % Hlice
Superficies de revolucin
cylinder(x);
Esfera
sphere
Grficas mltiples en una figura
La instruccin subplot(m,n,p) permite la conjuncin de
varios grficos en una sola figura de m x n recuadros,
donde p es el nmero de recuadro.
E.g.:
t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(4*cos(t));
subplot(2,2,1); mesh(X)
subplot(2,2,2); mesh(Y)
subplot(2,2,3); mesh(Z)
subplot(2,2,4); mesh(X,Y,Z)
Controlando Ejes y Figuras
MATLAB permite el ajuste de los lmites de los ejes y la
resolucin de la trama del cuadriculado mediante la
instruccin: axis([xmin xmax ymin ymax])
de igual manera permite hacer visibles los ejes con:
axis on y axis off
Mismo caso para la trama: grid on y grid off
Para acceder a una figura especfica para ajustarla se
puede usar : figure(n) donde n es el nmero de la
figura mostrado en la cabecera de la imagen
Para cerrar las ventanas se usa: close all
Operadores lgicos y
Control de flujo de programas
Operadores lgicos
A&B|C = (A&B) | C
A|B&C = A | (B&C)
A&~B|C = (A&(~B)) | C
A|~B&C = A | ((~B)&C)
Programacin en Matlab
Conditional Control
Las operaciones de control
- if, else, elseif de flujo de programa
- switch, case permiten operar a
MATLAB mas all de una
Loop Control simple calculadora,
- for, while, continue, break convirtindolo en un
lenguaje de alto nivel.
Error Control
El control de flujo se realiza
- try, catch mediante expresiones
condicionales y de control
Program Termination
de ciclo
- return
Expresiones condicionales
If, Else, and Elseif
La expresin if condiciona la ejecucin de un grupo de instrucciones, a
partir de una comparacin lgica. Dichas instrucciones slo se ejecutan en
caso que el resultado de la comparacin resulte positiva (true).
La lista de las instrucciones condicionadas alcanza su final al encontrarse la
expresin reservada end.
Para el caso que el resultado de la comparacin lgica resulte negativa,
todos las instrucciones condicionadas son omitidas de la ejecucin
En cualquier caso, el resto del programa continuar ejecutandose a partir
de la expresin reservada end
if comparacin_logica
instrucciones
end
Expresiones condicionales
A=6 B=0
if A > 6
D = [1 2 6]
A=A+1
end
if A | B
E = mean(B)
end
Expresiones condicionales
If, Else, and Elseif
La expresin else permite la ejecucin de un segundo grupo de
instrucciones delimitadas nuevamente por la expresin reservada end, si y
slo si el resultado de la expresin if result negativa (false).
Es decir que slo uno de los sets de instrucciones podr ser ejecutado por
cada vez que se evale la expresin condicional.
if comparacin_logica
primer set de instrucciones
else
segundo set de instrucciones
end
Expresiones condicionales
A=6 B=0
if A > 6 if A & B
D = [1 2 6] E = mean(B)
A=A+1 else
else E=0
D = [ 0 0 0] end
A=A-1
end
Expresiones condicionales
If, Else, and Elseif
La expresin elseif fuerza la ejecucin del grupo de instrucciones
delimitadas bajo su campo de accin si y slo si el resultado de la
expresin if result negativa (false) y si el resultado de su comparacin
lgica relacionada result positiva(true).
if comparacin_logica
primer set de instrucciones
elseif comparacin_lgica_2
segundo set de instrucciones
elseif comparacin_lgica_3
tercer set de instrucciones
end
Expresiones condicionales
A=6 B=0
if A > 3
D = [1 2 6]
A=A+1
elseif A > 2
D=D+1
A=A+2
end
for ndice=valor_inicial:incremento:valor_final
conjunto de instrucciones
end
Asigna 0 a los primeros 100 elementos del
vector x
Para el caso de que x no exista o que contenga
menos de 100 elementos, espacio adicional
ser aadido automticamente
Ciclos
FOR
Como en otros lenguajes de programacin, MATLAB permite
anidar varios ciclos en el cdigo.
A=[]
for i = 1:m
for j = 1:n
A(i,j) = i + j
end
end
Se crea una matriz de m por n cuyos elementos
contienen la suma de su position en la matriz
Ciclos
WHILE
La expresin while ejecuta una instruccin o conjunto de instrucciones
de manera repetida mientras la expresin_lgica de control sea
verdadera.
while expresin_lgica
conjunto de instrucciones
end
Ciclos
WHILE
A = 6; B = 15;
while A > 0 & B < 10
A=A+1
B=B-2
end
El ciclo while incrementar el valor de A y
decrementar el de B por cada ciclo hasta que
las 2 condiciones en la expresin se cumplan
** Para prevenir entrar en un ciclo infinito, se
requiere que las comparaciones lgicas que
evala el while se cumplan en algn momento.
Ciclos
WHILE
A = 6; B = 15;
while A > 0 & B < 10
If A < 0
A=A+1
elseif B > 10
B=B2
end
end
Expresiones condicionales puden ser anidadas
dentro de los ciclos, permitiendo modificar de
manera interna algunas variables
Ciclos
WHILE
A = 6; B = 15;
while A > 0 & B < 10
If A < 0
A=A+1
elseif B > 10
B=B2
end
end
Expresiones condicionales puden ser anidadas
dentro de los ciclos, permitiendo modificar de
manera interna algunas variables
Ciclos
Finalizacin de ciclos
La expresin break es una instruccin que permite
terminar de manera inmediata la ejecucin de los ciclos
for y while
Presione para
crear un nuevo
archivo .m
Si se incluye el ; al final
de cada lnea o instruccin
su resultado no ser
mostrado inmediatamente
Funciones propietarias
Las funciones son en realidad archivos .m los cuales pueden ser
ejecutados especificando ciertas entradas y salidas deseadas.
La instruccin para decirle a MATLAB que un archivo es en
realidad una funcin es:
function out1=nombre_funcin(in1)
function out1=nombre_funcin(in1,in2,in3)
function [out1,out2]=nombre_funcin(in1,in2)
Mismo nombre
Comentarios
Se utiliza el smbolo % para que el intrprete de
MATLAB omita cualquier texto despus de dicho
caracter dentro de esa lnea (equaivalente al uso de //
en lenguaje C).
i 10 100 uF
+
v(t) = 5 sin t 0.01 H
sV R 2 I
= sI + s I +
L L LC
sV 2 R 1
= I s + s +
L L LC
Simulink
s(1/ L)
V R 1 I
2
s + s+
L LC
Simulink
1
simout
s+1
Sine Wave Transfer Fcn To Workspace
Simulink
s(1/ L)
s(100)
2 R 1
s + s+ 2
s + 1000s + 110 6
L LC
100s
i
s2+1000s+1e6
Sine Wave To Workspace
Transfer Fcn
To Workspace1
Simulink eg8_sim.mdl
Ramp Amplitude v
w To Workspace3
To Workspace2 100s
1 i
sin s2+1000s+1e6
1000 s To Workspace
Dot Product2 Transfer Fcn1
Constant Dot Product3 Integrator Elementary
Math
0.5
-0.5
-1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Simulink eg9_sim.mdl
5
Constant1
100s
1
2000 0.802 sin s2+1000s+1e6
s Scope
Constant Dot Product2
Slider Integrator Elementary T ransfer Fcn
Gain M ath
Graphical User Interfaces
GUIDE, the MATLAB Graphical User Interface
Development Environment, provides a set of tools for
creating graphical user interfaces (GUIs). These tools
greatly simplify the process of designing and building
GUIs. You can use the GUIDE tools to perform the
following tasks:
- Laying out the GUI.
- Programming the GUI.
Example template for a push button
MATLAB
MATLAB Demos
Demos
Demonstrations
Demonstrations are are
invaluable
invaluable since
since they
they
give
give an
an indication
indication of
of the
the
MATLAB
MATLAB capabilities.
capabilities.
AA comprehensive
comprehensive set set are
are
available
available by
by typing
typing the
the
command
command >>demo
>>demo in in
MATLAB
MATLAB prompt.
prompt.
MATLAB
MATLAB Demos
Demos
MATLAB
MATLAB works
works with
with scalars,
scalars, vectors
vectors
and
and matrices:
matrices:
Basic
Basic matrix
matrix operations,
operations,
Inverses
Inverses of
of matrices,
matrices,
Graphs
Graphs of
of matrices,
matrices,
Matrix
Matrix manipulation,
manipulation,
Programming,
Programming, application
application development,
development,
and
and GUI
GUI design
design
MATLAB
MATLAB Demos
Demos
MATLAB
MATLAB has
has remarkable
remarkable
graphics
graphics capacities:
capacities:
2-D
2-D and
and 3-D
3-D plots,
plots,
Line
Line plotting,
plotting,
3-D
3-D surface
surface plot,
plot,
Splash
Splash screen
screen plot,
plot,
Plot
Plot of
of complex
complex functions
functions and
and ...
...
MATLAB
MATLAB Demos
Demos
MATLAB
MATLAB hashas remarkable
remarkable graphics
graphics
capacities,
capacities, 3_D
3_D plots
plots are
are some
some of
of
them:
them:
3-D
3-D plots
plots in
in Handel
Handel Graphics
Graphics
Plot
Plot Type,
Type,
Shading,
Shading,
Colomap,
Colomap,
Axis
Axis and
and ...
...
MATLAB
MATLAB Demos
Demos
MATLAB
MATLAB hashas remarkable
remarkable graphics
graphics
capacities,
capacities, gallery
gallery is
is one
one of
of them:
them:
The
The Gallery
Gallery is is aa place
place to
to hang
hang particularly
particularly
elegant
elegant examples
examples of of graphics
graphics visualization
visualization in
in
MATLAB.
MATLAB.
Knot,
Knot,
Quiver,
Quiver,
Klein
Klein II,
II,
Cruller
Cruller and
and ...
...
MATLAB
MATLAB Demos
Demos
MATLAB
MATLAB has
has many
many toolboxes:
toolboxes:
Control
Control toolbox
toolbox is is one
one of
of the
the
important
important toolbox
toolbox in
in MATLAB.
MATLAB.
RLC
RLC Circuit
Circuit Response,
Response,
Gain
Gain and
and Phase
Phase Margins,
Margins,
Notch
Notch Filter
Filter Discrete,
Discrete,
PID
PID and
and ...
...
MATLAB
MATLAB Demos
Demos
MATLAB
MATLAB has
has many
many toolboxes:
toolboxes:
Signal
Signal Processing
Processing toolbox
toolbox is
is one
one of
of the
the
important
important toolobx
toolobx in
in MATLAB.
MATLAB.
Designing
Designing Filter,
Filter,
Filtering
Filtering aa Signal,
Signal,
Discrete
Discrete and
and Continuous
Continuous Fourier
Fourier
Transform,
Transform,
Spectral
Spectral Analysis
Analysis and
and ...
...
MATLAB
MATLAB Demos
Demos
Simulink
Simulink hashas the
the ability
ability to
to simulate
simulate
aa large
large range
range of of systems,
systems, fromfrom very
very
simple
simple toto extraordinarily
extraordinarily complex.
complex.
The
The Model
Model and
and demonstrations
demonstrations that that
you
you will
will see
see in
in this
this section
section include
include
both
both simple
simple and
and complex
complex systems.
systems.
MATLAB
MATLAB Demos
Demos
Simulink
Simulink has
has the
the ability
ability to
to simulate
simulate aa
large
large range
range of
of systems,
systems, inin the
the menu
menu
of
of Simulation
Simulation we
we have:
have:
Pause.
Pause.
Stop,
Stop,
Simulation
Simulation Parameters,
Parameters,
Start,
Start,