Professional Documents
Culture Documents
Tutorial de MATLAB
Tutorial de MATLAB
LEAN CON DETENIMIENTO LOS PRRAFOS SIGUIENTES Y NO
INTENTE INTRODUCIR DATOS HASTA QUE SE LE INDIQUE:
Matlab es una herramienta poderosa usada por ingenieros y
cientficos de todo el mundo para resolver diversos problemas
que requieren clculos complejos bajo una secuencia de
instrucciones y respaldado por una compaa de software
Profesional: The Math Works Inc.
La parte de este taller esta orientado para que el estudiante
tenga capacidad de graficar seales.
Su contenido se enumera a continuacin:
1.- Matrices y operadores.
2.- Funciones y comandos propios de Matlab.
3.-Graficacin de seales.
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
10
Tutorial de MATLAB
11
Tutorial de MATLAB
12
Tutorial de MATLAB
13
Tutorial de MATLAB
Lneas de comentarios
14
Tutorial de MATLAB
15
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
CADENAS DE CARACTERES
En MATLAB las cadenas de texto van entre
apstrofos o comillas simples (Ntese que en C van
entre comillas dobles:
"cadena". Por ejemplo, en MATLAB:
s = 'cadena de caracteres'
21
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
hilb(5) crea una matriz de Hilbert de tamao (5x5). La matriz de Hilbert es una
matriz cuyos elementos (i,j) responden a la expresin (1/(i+j-1)). Esta es una
matriz especialmente difcil de manejar por los grandes erroresnumricos a los
que conduce
invhilb(5) crea directamente la inversa de la matriz de Hilbert
kron(x,y) produce una matriz con todos los productos de los elementos del
vector x por los elementos del vector y. Equivalente a x'*y, donde x e y son
vectores fila
compan(pol) construye una matriz cuyo polinomio caracterstico tiene como
coeficientes los elementos del vector pol (ordenados de mayor grado a menor)
vander(v) construye la matriz de Vandermonde a partir del vector v (las
columnas son las potencias de los elementos de dicho vector)
24
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
Operadores relacionales
El lenguaje de programacin de MATLAB dispone de
los siguientes operadores relacionales:
< menor que
> mayor que
<= menor o igual que
>= mayor o igual que
== igual que
~= distinto que
27
Tutorial de MATLAB
Operadores lgicos
Los operadores lgicos de MATLAB son los
siguientes:
& and
| or
~ negacin lgica
28
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
31
Tutorial de MATLAB
Tutorial de MATLAB
33
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
Tutorial de MATLAB
42
Tutorial de MATLAB
43
Tutorial de MATLAB
EL INDICADOR :
command
esperando
variable.
pertinente use
Tutorial de MATLAB
ESTILO
Matlab es sensible a la diferencia entre maysculas y
minsculas, as que los nombres Espacio, ESPACIO y espacio
representan tres variables distintas.
Matlab tiene la posibilidad de manejar nmeros reales (ejem. 12.7 10-2
se escribe 12.7 e-2 ) el nmero complejo de parte real 5 y parte
imaginaria 2 se representa en matlab 5+2*i o como 5+j*2, las letras
i y j se preasignan ambas en matlab para ser Iguales a -1. otras
constantes son pi para .
Tutorial de MATLAB
PUNTOS SUSPENSIVOS
Si hay demasiados nmeros en una fila
de una matriz para que quepan en una lnea, podemos continuar la
instruccin en la siguiente lnea, pero se requiere una coma y tres
puntos al final de la lnea para indicar que la fila debe continuar.
Ejemplo:
H = [-2,0,-3,4,-3,-4,5,0,0,2,1,1,1,3,4,-0.2]
que se puede escribir
como:
H = [-2,0,-3,4,-3,-4,...
5,0,0,2,1,1,1,3,4,-0.2]
MATLAB tambin nos permite definir una matriz que ya se defini:
Ejemplo:
B =[1.5, 4.1]
D = [-3, B] este comando equivale a
D = [-3,1.5,4.1]
46
Tutorial de MATLAB
Tutorial de MATLAB
AHORA SI EMPIECE A TECLEAR DATOS Y COMANDOS DE LOS
SIGUIENTES EJERCICIOS SLO TECLEA LOS VECTORES NO
ESCRIBAS EL COMENTARIO %
El punto y coma ; termina la instruccin y oculta la exhibicin del resultado de la
operacin.
Teclee
D = [-3, 1.5, 6, 2.5]
ahora
Teclee D = [-3, 1.5, 6, 2.
B = [ 2; 4; 6; 10]
C = [ 5, 3, 5 ; 6, 2, 3 ]
E = [ 3, 5, 10, 0; 0, 0 , ...
0, 3; 3, 9, 9, 8 ]
T = [ 4, 24, 9 ]
Q = [ T, 0, T ]
V = [ C ( 2, 1); B ]
A (2, 1) = - 3
48
Tutorial de MATLAB
Lee los siguientes comentarios y prueba su validez:
El operador de dos puntos es til para generar matrices nuevas;
Si se usa un signo de dos puntos para separar dos enteros, el operador de
dos puntos generara todos los enteros entre los dos enteros especificados.
tecle:
n = 1 : 10
ndices
Tambin se usan los signos de dos puntos para separar tres nmeros, el
operador de dos puntos generar valores entre el primer nmero y el
tercero, usando el segundo nmero como incremento:
tecle:
t = 0.0:0.5:6.0 % este operador es especialmente til para generar los
ndices de tiempo continuo o un dominio de una funcin
analgica.
El incremento tambin puede ser negativo
tecle:
49
r = 15:-1:0
Tutorial de MATLAB
EN LO SUSECIVO TRATE EN CADA EJEMPLO DONDE LO CREA ADECUADO
DE PROBAR LA AUTENTICIDAD DE LOS COMANDOS
Funciones especiales para generar matrices nuevas.
La funcin size devuelve dos argumentos escalares que representan el
nmero de filas y el nmero de columnas, podemos usar size para
generar una matriz de ceros que tenga el mismo tamao que la otra
matriz ejemplo:
Tecle
W = [ 4, 3, 2; 4, 6, 3 ];
F= zeros(size ( W ) )
La funcin ones genera una matriz que solo contiene unos.
Tecle
C= [1, 2, 3; 4, 2, 5];
D = ones(size(C))
Algunas ocacines es necesario conocer que variables se hallan
definidas y que valores tienen almcenados el comando who lleva a cabo
esta accin:
Tecle who
Si desea dejar una variable sin definicin (sacarla de la lista ) se utiliza
el comando: clear.
50
Tutorial de MATLAB
Operaciones con escalares , vectores y matrices: Los operadores
matemticos incorporados que se utilizan con frecuencia en matlab
son:
smbolo
significado
smbolo
significado
=
Asignacin
Adicin
Multiplicacin
.^
Potencia del
arreglo
Potenciacin
./
Divisin del
arreglo
Divisin
&
AND lgica
Operadores
relacionales
NOT logica
OR
Transpuesta
Transpuesta no
conjugada
< >
l
==
lgico
Igualdad
.*
Resta
Multiplicacin de
arreglo
51
Tutorial de MATLAB
Tutorial de MATLAB
Los vectores y matrices se suman (o restan) como lo hacemos en
matemticas, esto es, los dos vectores o matrices deben tener la misma
forma para sumarse o restarse a menos que uno de ellos sea un matriz de
1*1, un escalar, como lo vimos antes :
tecle:
b+c
c-b
Los vectores y las matrices se multiplican de acuerdo a las reglas del
lgebra:
tecle:
b*c
Este resultado ilustra un error comn en Matlab. Las matrices deben ser
conmensurables para ser multiplicadas utilizando el operador *. La
premultiplicacin de un vector rengln de 1 por 3 como c por un vector
rengln de 1 por 3 como b no esta definida. Sin embargo si c se
transpusiera a un vector columna 3 por 1, se definira la multiplicacin. La
transposicin se efecta con el operador .
tecle:
c
53
b*c
Tutorial de MATLAB
Operaciones elemento por elemento:
A menudo es muy til multiplicar dos vectores o matrices de la misma
forma, elemento por elemento en vez de utilizar las reglas usuales de la
multiplicacin de matrices. Ese tipo de multiplicacin se denomina
multiplicacin del arreglo en Matlab y se lleva a cabo utilizando el
operador .*
Las operaciones elemento por elemento, u operaciones de arreglos, no
slo se aplican a operaciones entre dos matrices del mismo tamao, si
no tambin a operaciones entre un escalar y un no escalar.
As pruebe las instrucciones de cada uno de los siguientes juegos:
tecle:
A = [ 4, 3, 2, 4, 6 ];
C = 3.*A
G = A./5
Las vectores resultantes C y G tendrn el mismo tamao que A.
54
Tutorial de MATLAB
A fin de ilustrar las operaciones de arreglos para vectores, considere los
dos siguientes vectores fila:
Tecle:
B = [ -6, 3, -2, 4, 6 ];
Calculemos el producto de arreglos de A y B usando las siguientes
instrucciones:
Tecle:
L = A.*B
El comando de divisin de arreglos,
Tecle:
F=A./B
Asimismo la exponenciacin de arreglos tambin es una operacin
elemento por elemento ejemplos;
Tecle:
Z = A.^2
M = A.^B
Tambin podemos usar una base escalar con un exponente vector
como;
P= 3.^A
55
Tutorial de MATLAB
Los ejemplos anteriores utilizaron vectores, pero las mismas reglas se
aplican a matrices con filas y columnas, como lo podrs constatar
declarando la matriz d ejecutando las operaciones indicadas:
d= [ 1:6; -1:-1:-6 ];
f=d.*6
w=d.^2
GRAFICA X vs. Y: Grficas x vs. y sencillas. Suponga que queremos
graficar los siguientes datos recabados de un experimento con un modelo
de coche de control remoto. El experimento se repite 10 veces, midiendo la
distancia que un mvil recorre en cada ensayo.
(x) Ensayo
1
2
3
4
5
6
7
8
9
10
(y) Distancia
58.5
63.8
64.2
67.3
71.5
88.3
90.1
90.6
89.5
90.4
56
Tutorial de MATLAB
Pruebe generar esta grfica: creando un vector llamado x con los datos
de la columna Ensayo, y un vector llamado y con los datos de la
columna Distancia y en seguida teclee :
plot (x, y), grid y de enter
Se genera automticamente la grfica.
La buena prctica de ingeniera exige la inclusin de unidades y un
titulo
Por lo tanto en el cdigo anterior incluya los siguientes comandos:
plot(x,y), title (Grfica de experimento), xlabel ( Ensayo), ylabel
(Distancia), grid
Si se agrega un tercer argumento en el comando plot ste controla el
color y el estilo de la grfica. Es una cadena la que determina el color
de la lnea, estilo de la misma y los smbolos (si los hay ) utilizado para
los puntos de marca, por tanto intente dar elegancia a su grafica
anterior agregando al comando plot:
57
Tutorial de MATLAB
LISTA DE CARACTERES
COLOR
y
amarillo
m
magenta
c
cyan
r
rojo
guionada
g
verde
b
azul
w
blanco
k
negro
MARCADOR
.
punto
o
circulo
x
marca x
+
ms
*
d
v
^
ESTILO DE LINEA
continua
:
punteada
-.
guin-punto
--
asterisco
s
cuadrado
diamante
triangulo(hacia abajo)
triangulo (hacia arriba)
58
Tutorial de MATLAB
Los archivos .m o archivos .M
Este tipo de archivo es de lo ms importe que se puede generar por el
usuario en MATLAB, es un archivo que ejecuta las instrucciones programadas
en l, y que pueden convertirse en un comando de matlab.
Ahora tu crearas un archivo .m
Desde la ventana de matlab selecciona new, M-file
Aparecer un blok de notas dentro de l, declara las siguientes variables:
Tecle:
t =[0:0.001:2]; % Este vector se puede tambin generar con:
linspace(0,0.001,2).
m = 2;
y = m .*t;
plot(t, y, 'r', linewidth,4),grid %linewidth, 4 : te da el grueso de la linea.
Despus guarda este cdigo en el mismo blok de notas en la parte superior (
file save en el drive e: pendiente.m si es memoria USB) con el nombre
pendiente.m, est nombre de archivo se convierte en un comando de Matlab
con el nombre pendiente.
Ejectalo en la pantalla de comandos llamndolo slo con su nombre
pendiente sin la extensin.m (antes de llamarlo recuerda cambiarte de
directorio del C: al e: con la instruccin cd e: si es el caso) .
Este archivo .m puedes llevarlo a otra computadora que tenga el programa
59
matlab y ejecutarlo .
Tutorial de MATLAB
60
Tutorial de MATLAB
61
Tutorial de MATLAB
GRAFICAS LINEALES Y LOGARTMICAS:
La mayor parte de las grficas
que generamos dan por hecho que los ejes x vs. y se dividen en intervalos
equiespaciados; estas grficas se llaman grficas lineales. Una escala
logartmica (de base 10) es til cuando una variable abarca varios rdenes de
magnitud.
Los comandos MATLAB para generar grficas lineales y logartmicas de los
vectores x y y son los siguientes
plot (x,y)
semilogx (x,y)
escala
semilogy (x,y)
escala
Tutorial de MATLAB
GRAFICAS MULTIPLES: Una forma sencilla de generar curvas
mltiples en la misma grfica es usar mltiples argumentos en
un comando de graficacin, como en
Plot (x, t, y ,t) Al ejecutarse este programa, se traza la curva
correspondiente a x versus t, y luego se traza en la misma
grafica la curva correspondiente y versus t.
Ms adelante se ver como utilizar estos comandos ( tarea
cdigo 3).
Tarea: Comenta (con %) los comandos en los siguientes tres
cdigos, usa archivos .M, imprime tus graficas y presntalos al
maestro del curso son parte de la evaluacin del mismo.
63
Tutorial de MATLAB
Cdigo No.1
v1=[0:0.001:.7979];
w1=298;
q=1.6022e-19;
n=1.5;
k=1.38e-23;
num1=q.*v1;
den1=n*k*w1;
M1=num1./den1;
x1=1e-9.*exp(M1);
v2=[0:0.0001:.6379];
w2=358;
num2=q.*v2;
en2=n*k*w2;
M2=num2./den2;
x2=1024e-9.*exp(M2);
plot(v1,x1,'b',v2,x2,'r'), title('ECUACION DEL DIODO'),
legend('TEMPERATURA 298k', 'TEMPERATURA 358k'), grid
64
Tutorial de MATLAB
SUBGRFICAS: El comando subplot permite dividir la ventana de
grficos en subventanas. Las posibles divisiones pueden ser dos
subventanas o cuatro subventanas o incluso 8 ventanas en una hoja..
Los argumentos del comando subplot son tres enteros: (m, n, p). Los
dgitos m y n especifican que la ventana de grficos se divida en una
retcula de m por n ventanas ms pequeas, y el digito p especifica la
p-sima ventana para la grfica actual ( donde se ubica esta grafica) .
Las ventanas se numeran de izquierda a derecha y de arriba abajo.
Por ejemplo el siguiente comando Subplot(2,1,1), plot(x,y) especifica
que la ventana de grficos se divida en una grafica superior y una
inferior ( dos lneas de graficas en una columna ) y que la grafica
actual plot(x,y) se coloque en la ventana superior (cdigo No.2).
El siguiente juego de instrucciones genera cuatro graficas que
ilustran la funcin del comando subplot empleando escalas lineales
y logartmica.
65
Tutorial de MATLAB
Cdigo No. 2
t=[0:0.001:1];
f=2;
w=2*pi*f;
x=((1/2).*(1+cos(2*w.*t)));
subplot(2,2,1),plot(t,x,'r','linewidth',2),grid,...
subplot(2,2,2),semilogx(t,x,'b','linewidth',2),grid,...
subplot(2,2,3),semilogy(t,x,'r','linewidth',2),grid,...
subplot(2,2,4),loglog(t,x,'b','linewidth',2),grid
Cdigo No. 3
t=[-6*pi:.001:6*pi];
w1=2/3;
w2=1/2;
w3=1/3;
x1=2.*sin(w1.*t);
x2=3.*sin(w2.*t);
x3=4.*sin(w3.*t);
plot(t,x1,'b',t,x2,'r',t,x3,'k','linewidth',2),title('Cada senoide
completa un numero entero de ciclos'),grid
66
Tutorial de MATLAB
Cdigo No. 3
t=[-6*pi:.001:6*pi];
w1=2/3;
w2=1/2;
w3=1/3;
x1=2.*sin(w1.*t);
x2=3.*sin(w2.*t);
x3=4.*sin(w3.*t);
plot(t,x1,'b',t,x2,'r',t,x3,'k','linewidth',2),title('Cada senoide
completa un nmero entero de ciclos'),grid
67
Tutorial de MATLAB
Cdigo No.4
t=0:.001:1;
x=2*sin(8*pi*t);
plot(t,x,'r','linewidth',2),grid
n=0:1:15;
y=2*sin(8*pi*(1/15)*n);
subplot(2,1,1),plot(t,x,'r','linewidth',3),grid,subplot(2,1,2),st
em(n,y,'linewidth',3),grid
68
Tutorial de MATLAB
69
Tutorial de MATLAB
Tele
t=[-1:.005:1];
f=1;
w0=2*pi*f;
x=1.5*ones(size(t));
for i=1:100;
x=x+((-1)^(i+1))*(1/i)*sin(i*w0.*t);
end
plot(t,x,'r','linewidth',2), grid
70
Tutorial de MATLAB
Una ms
t=[-2:0.001:2];
x=0.25*ones(size(t));
for m=1:2:99
x=x+(-1)^((m-1)/2)*1/(m*pi)*exp(i*m*pi*t);
end
plot(t,x,'r','linewidth',2),grid
71
Tutorial de MATLAB
72