Anda di halaman 1dari 31

06/04/2011

1
1
SEALES Y SISTEMA
INTRODUCCION
A MATLAB
Ing. Antonio Greco
Ing. Germn Said
2
CARACTERISTICAS DEL ENTORNO
MATLAB
Es un sistema interactivo y lenguaje de
programacin para cmputo cientfico y
tcnico.
Se desarroll originalmente como un
Laboratorio de Matrices.
MATLAB
06/04/2011
2
3
VENTANAS
Matlab usa tres ventanas de exhibicin:
Ventana de comandos
Ventana de grficos
Ventana de edicin
MATLAB
4
VENTANA DE COMANDO
Cuando entramos en Matlab, la ventana activa es
la de comandos, sirve para introducir comandos y
datos e imprimir resultados.
Es posible escribir programas o guiones en la
misma, pero estos se borraran al salir de Matlab.
MATLAB
06/04/2011
3
5
VENTANA DE COMANDO
MATLAB
6
VENTANA DE GRAFICOS
Sirve para exhibir curvas y grficas
MATLAB
06/04/2011
4
7
VENTANA DE EDICION
Sirve para crear y modificar archivos M,
que son archivos que contienen un
programa o guin de comandos Matlab.
Para ejecutar un archivo M (como
eje_1.m),simplemente hay que teclear el
nombre del archivo sin su extensin.
MATLAB
8
VENTANA DE EDICION

MATLAB
06/04/2011
5
9
DESPEJE DE VENTANAS
Hay varios comando para despejar ventanas
clc: despeja la ventana de comandos
clf: borra la figura actual y por lo tanto despeja la
ventana de grficos.
Clear: no afecta las ventanas, pero si borra todas las
variables de la memoria.
Consejo: iniciar los programas con los comandos clear
y clf para tener la seguridad de que la memoria est
despejada y que la ventana de grficos est en blanco y
restablecida.
MATLAB
10
VECTORES Y MATRICES
Matriz: conjunto de nmeros dispuestos en
una retcula rectangular de filas y columnas.
Vector: es una matriz que slo posee una
fila (vector fila) o una columna (vector
columna).
Escalar: podemos llamar as a una matriz
con una sola fila y una sola columna.
MATLAB
06/04/2011
6
11
VECTORES Y MATRICES
Para referirnos a una matriz utilizamos una
letra y los datos contenidos en la misma se
escriben dentro de corchetes.
Ejemplos:

| |
| |

=
=
=
7 4 3
1 5 1
8 2 2
5 5 4 1
8 2
C
. B
. A
MATLAB
12
VECTORES Y MATRICES
Para ingresar una matriz de 3 filas por 3 columnas
hacemos:
C=[-2 2 8; 1 -5 1; 3 4 7];
Otra forma de ingresar la matriz:
C=[-2,2,8;1,-5,1;3,4,7];
Otra forma:
C=[-2,2,8
1,-5,1
3,4,7];
MATLAB
06/04/2011
7
13
VECTORES Y MATRICES
Si hay demasiados nmeros en una fila de una matriz
para que quepan en una lnea, podemos continuar en la
siguiente lnea, pero se requiere una coma y tres puntos
al final de la lnea:
E= [2,53,56,7,8,100,200,
67, 59,-68]
O tambin:
E=[2 53 56 7 8 100 200
67 59 -68]
MATLAB
14
VECTORES Y MATRICES
Para el caso de una matriz de 2 filas y hay demasiados
nmeros en cada fila para que quepan en una lnea,
podemos continuar en la siguiente lnea
H= [2,53,56,
67; 59,-68, -4,
5];
O tambin:
H=[2 53 56
67; 59 -68 -4
5]
MATLAB
06/04/2011
8
15
VECTORES Y MATRICES
Subndices: se utilizan para referirnos a un
elemento o nmeros individuales que contiene una
matriz.
Ejemplo: para referirnos al valor de la fila 3 y
columna 3 de la matriz C, usamos los nmeros de
fila y columna como subndices; as,
representa el valor 7.
Los subndices se indican en Matlab con
parntesis, como C(3,3).
3 3,
C
MATLAB
16
VECTORES Y MATRICES
Matriz vaca: es una matriz que no contiene ningn
elemento. En Matlab se genera de esta manera:
a = [ ]
Matriz transpuesta: representa una matriz en que las
filas de A se han convertido en las columnas de A.
| |

=
=
5
4
1
5 4 1
' A
A
MATLAB
06/04/2011
9
17
VALORES ESPECIALES Y MATRICES
ESPECIALES
pi : representa
i, j : representa el valor
Inf : representa infinito
NaN : representa No-es-un-nmero y suele ocurrir
cuando la operacin no est definida, como la divisin cero
entre cero.
eps : representa la precisin de punto flotante de la
computadora que se est usando. Esta precisin es la
cantidad ms pequea en que pueden diferir dos valores en
la computadora.
MATLAB
t
1

18
VALORES ESPECIALES Y MATRICES
ESPECIALES
Funcin zeros: genera una matriz que
contiene slo ceros.
Ej. A = zeros (3, 2);
Genera la siguiente matriz:

=
0 0
0 0
0 0
A
MATLAB
06/04/2011
10
19
VALORES ESPECIALES Y MATRICES
ESPECIALES
Funcin ones: genera una matriz que
contiene slo unos.
Ej. B = ones (4, 3);
Genera la siguiente matriz:

=
1 1 1
1 1 1
1 1 1
1 1 1
B
MATLAB
20
VALORES ESPECIALES Y MATRICES
ESPECIALES
Funcin eyes: genera una matriz identidad,
que es una matriz con unos en la diagonal
principal. Ej. C = eyes (3); y D = eyes(3,2);
Generan las siguientes matrices:

=
1 0 0
0 1 0
0 0 1
C

=
0 0
1 0
0 1
D
MATLAB
06/04/2011
11
21
ENTRADAS Y SALIDAS
Entradas del usuario: Los valores para una
matriz tambin pueden introducirse a travs del
teclado usando el comando input, que exhibe una
cadena de texto y luego espera entrada del usuario.
Ej.
z = input (Introduzca valores para z en corchetes)
El usuario puede introducir una expresin como:
[4 3 2 1]
que especifica valores para z.
MATLAB
22
ENTRADAS Y SALIDAS
Opciones de salida: Hay varias formas de
presentar el contenido de una matriz. Se repetir el
nombre de la misma y a partir de la siguiente lnea
se exhibirn los valores de la matriz.
Tambin hay varios comandos que pueden servir
para exhibir matrices con un mayor control sobre
el formato de la salida.
Tambin podemos graficar los valores de una
matriz para tener una representacin visual.
MATLAB
06/04/2011
12
23
ENTRADAS Y SALIDAS
FORMARTOS DE EXHIBICION DE NUMEROS
Comando Matlab Exhibe Ejemplo
format short Por omisin 23.3456
format long 14 decimales 25.123456789123455
format bank 2 decimales 32.23
format short e 4 decimales 1.1234e+01
format long e 15 decimales 1.123456789123456e+01
format + +, - , espacio +
MATLAB
Si se exhibe una matriz con el formato format +, los nicos
caracteres que se imprimen son signos de ms y de menos. Si un
valor es positivo, se exhibe un signo ms, si es negativo un signo
menos y si es cero un espacio. Se utiliza para visualizar matrices
muy grandes.
24
ENTRADAS Y SALIDAS
MATLAB
Exhibicin de textos y valores: Se utiliza la
funcin disp para exhibir texto encerrado
entre apstrofos.
Ej. Si un escalar temp contiene el valor de temperatura en grados
centgrados, podramos exhibir el valor en una lnea y las unidades en
la lnea de comando es la siguiente:
disp(temp); disp(grados C) - (deben estar en la misma lnea)
Si la temperatura es 32, la salida ser
32
grados C
06/04/2011
13
25
ENTRADAS Y SALIDAS
MATLAB
Salidas con formato. El comando fprintf nos permite tener
todava ms control sobre las salidas que el que tenemos con el
comando disp.
Adems de exhibir tanto texto como valores de matrices, podemos
especificar el formato que se usar al exhibir los valores, y tambin
saltos de lnea.
La forma general de este comando es:
fprintf (formato, matrices)
El formato contiene el texto y las especificaciones de formato para las
salidas, y va seguido de los nombres de la matrices por exhibir.
Dentro del formato se usan los especificadores % e, % f y % g para
indicar como se exhibirn los valores de la matriz.
26
ENTRADAS Y SALIDAS
MATLAB
Si se usa %e, los valores se exhiben en notacin exponencial.
Si se usa % f, los valores se exhiben en una notacin de punto fijo o decimal.
Si se usa % g, los valores usarn % e o bien % f, el que sea ms corto.
Si aparece la cadena \ n en el formato, se exhibir la lnea especificada hasta
ese punto, y el resto de la informacin se exhibir en la siguiente lnea. Lo
usual es que el formato termine con \ n.
Un ejemplo sencillo del comando fprintf
fprintf (La temperatura es %f grados C \n, temp)
La salida ser:
La temperatura es 32.00000 grados C
Si modificamos el comando de esta manera:
fprintf (La temperatura es \n %f grados C \n, temp)
La slida ser:
La temperatura es
32.00000 grados C
06/04/2011
14
27
ENTRADAS Y SALIDAS
MATLAB
Los especificadores de formato % e, % f y % g tambin pueden
contener informacin para especificar el nmero de posiciones
decimales que se exhibirn y el nmero de posiciones que se
destinarn al valor correspondiente. Sea el siguiente comando:
fprintf (La temperatura es %4.1f grados C \n, temp)
El valor de temp se exhibe usando 4 posiciones, una de las cuales es decimal.
La temperatura es 32.0 grados C
Como vemos, las instrucciones fprintf nos permite tener gran control sobre las
salidas.
28
ENTRADAS Y SALIDAS
MATLAB
Grficos xy. A partir de datos cargados en dos vectores
se realizar un grfico xy, estos datos fueron tomados
de 6 experimentos realizados en un coche elctrico a
escala para determinar la autonoma.
Ensayo Distancia, mts
1 60.3
2 91.5
3 105.6
4 136.8
5 145,4
6 189.9
06/04/2011
15
29
ENTRADAS Y SALIDAS
MATLAB
Los nmeros correspondiente al orden de los
experimentos se cargan en un vector llamado x y el
resultado correspondiente en un vector llamado y.
La instruccin que se utiliza para realizar grfico es:
plot(x,y)
30
ENTRADAS Y SALIDAS
MATLAB
06/04/2011
16
31
ENTRADAS Y SALIDAS
MATLAB
Ttulos y leyendas. La buena prctica de ingeniera exige
la inclusin de unidades y un ttulo.
Los siguientes comandos agregan un ttulo, leyendas en los
ejes x e y, y tambin una grilla de fondo.
Plot (x,y), title (Experimento autonoma auto elctrico), . . .
xlabel (Ensayo), ylabel (Distancia Mts), grid
32
ENTRADAS Y SALIDAS
MATLAB
Ttulos y leyendas.
06/04/2011
17
33
ENTRADAS Y SALIDAS
MATLAB
Archivos de datos. Tambin pueden definirse matrices a
partir de informacin que se ha almacenado en un archivo
de datos.
Matlab puede utilizar dos tipos distintos de archivos de
datos:
Archivos MAT (contiene datos almacenados en formato binario
que aprovecha de manera eficiente la memoria).
Archivos ASCII (contiene informacin almacenada en un formato
de texto estndar para computadoras).
34
ENTRADAS Y SALIDAS
MATLAB
Archivos de datos.
Los archivos MAT son preferibles para datos que van a
ser generados y utilizados por programas Matlab.
Los archivos ASCII son necesarios cuando los datos se
van a compartir con otros programas que no sean Matlab
(importndolos o exportndolos).
06/04/2011
18
35
ENTRADAS Y SALIDAS
MATLAB
Archivos de datos.
Los archivos MAT se generan desde un programa Matlab usando
el comando save, que contiene un nombre de archivo y las matrices
que se van a almacenar en el archivo. Se agrega automticamente la
extensin.mat al nombre del archivo. Por ejemplo, el siguiente
comando:
save data_1 x y;
guarda las matrices x e y en un archivo llamado data_1.
Para recuperar estas matrices en un programa Matlab, usamos el
siguiente comando:
load data_1;
36
ENTRADAS Y SALIDAS
MATLAB
Archivos de datos.
Un archivo ASCII que vaya a ser usado por un programa Matlab
deber slo contener informacin nmerica, y cada fila del archivo
deber contener el mismo nmero de valores de datos.
El archivo puede generarse usando un procesador de textos o un editor,
tambin puede generarse ejecutando un programa escrito en un
lenguaje para computadora, como C, o mediante un programa Matlab
usando la siguiente forma de comando save:
save data_2.dat z/ascii;
El comando load seguido por el nombre del archivo lee la
informacin y la coloca en una matriz con le mismo nombre que el
archivo de datos. Ejemplo:
load data_2.dat;
06/04/2011
19
37
OPERACIONES CON ESCALARES
MATLAB
Operaciones aritmticas entre dos escalares. Se muestran
en la siguiente tabla:
Las expresiones que contienen escalares y operaciones escalares se
pueden almacenar en una variable especificada. Por ejemplo:
x= a + b; (los valores de a y b se suman y la suma se almacena en x).
cuenta = cuenta + 1; ( cuenta acta como acumulador, se suma 1 al
valor que est en cuenta).
Operacin Forma algebrica Matlab
suma a + b a + b
resta a - b a - b
multiplicacin a x b a * b
divisin a / b a / b
exponenciacin

b
a
a ^ b - Nota: ^ es alt 94

38
OPERACIONES CON ARREGLOS
MATLAB
Operaciones de arreglos. Estas operaciones se ejecutan
elemento por elemento. Si A es un vector fila de 3 elementos y B es un
vector fila con 3 elementos, una forma de generar un vector de fila C
cuyos valores sean los productos de los anteriores es la siguiente:
C(1) = A(1)*B(1);
C(2) = A(2)*B(2);
C(3) = A(3)*C(3);
No poner el punto antes del asterisco es una omisin muy grave porque
en tal caso la instruccin especifica una operacin de matrices.
Operacin Forma algebrica Matlab
suma a + b a + b
resta a - b a - b
multiplicacin a x b a. * b
divisin a / b a. / b
exponenciacin

b
a
a. ^ b - Nota: ^ es alt 94

06/04/2011
20
39
OPERACIONES CON ARREGLOS
MATLAB
40
PRECEDENCIA DE OPERACIONES ARITMETICAS
MATLAB
Precedencia. Dado que es posible combinar varias operaciones en
una sola expresin aritmtica, es importante conocer en que orden se
realizan las mismas. La tabla siguiente indica la precedencia de las
operaciones aritmticas en Matlab.
Ejemplo: Sea la expresin:
Precedencia Operacin
1 Parntesis, primero los ms internos
2 Exponenciacin de izquierda a derecha
3 Multiplicacin y divisin, de izquierda a derecha
4 Suma y resta, de izquierda a derecha
; den / num y
; . x den
; x * ^ x * num
. x
x x
y
=
+ =
+ =
+
+
=
045 0
4 5 2 3
045 0
4 5 3
2
06/04/2011
21
41
GRAFICAS LINEALES Y LOGARITMICAS
MATLAB
Los comandos Matlab para generar grficas lineales y
logartmicas son los siguientes:
plot (x,y) Genera una grfica lineal con los valores de x e y
semilogx (x,y) Genera una grfica con una escala logartmica para x
una escala lineal para y.
semilogy (x,y) Genera una grfica con una escala lineal para x y una
escala logartmica para y.
loglog (x,y) Genera una grfica con escalas logartmicas tanto para
x como para y.
42
ESTILO DE LINEAS, MARCAS Y COLORES
MATLAB
El comando plot(x,y) genera una grfica de lneas que
conecta los puntos representados por los vectores x e y con
segmento de lneas. Tambin podemos seleccionar otros
tipos de lneas: de guiones, de puntos, de puntos y guiones,
y tambin una grfica de puntos en lugar de una lnea.
La tabla siguiente muestra las distintas alternativas de
lneas:
Tipo de lnea Smbolo
continua -
guiones - -
punteada :
Guiones y puntos -.
06/04/2011
22
43
ESTILO DE LINEAS, MARCAS Y COLORES
MATLAB
La tabla siguiente muestra las distintas alternativas de
marcas:
La tabla siguiente muestra las distintas alternativas de
colores:
Tipo de marca Smbolo
Punto .
Ms +
Estrella *
Crculo o
Marca x x
Tipo de marca Smbolo
Rojo r
Amarillo y
Magenta m
Turquesa c
Verde g
Azul b
Blanco w
Negro k
44
ESTILO DE LINEAS, MARCAS Y COLORES
MATLAB
06/04/2011
23
45
CALCULOS
MATLAB
Clculos con una sola variable. Como ejemplo sencillo
evaluaremos:
Los comando que debemos teclear son:
La forma ms fcil de exhibir el resultado es teclear vol y pulsar return
2
3
4
3
= t = r siendo ; r Volumen
46
CALCULOS
MATLAB
Otra forma de imprimir el valor de vol es omitir el signo de punto y coma al final del
segundo comando.
Podemos escribir varios comandos en una misma lnea separndolos con signos de
punto y coma. Si necesitamos imprimir los resultados de cada comando que se ejecute,
separamos los comandos con comas y terminamos la lnea con o sin una coma. Por ej.
Se imprimirn los resultados.
06/04/2011
24
47
OPERADOR DE DOS PUNTOS
MATLAB
Operador de dos puntos: Sirve para crear matrices nuevas.
Por ejemplo, puede usarse para crear vectores a partir de una matriz. Si
se usa un signo de dos puntos en una referencia de matriz en lugar de
un subndice especfico , el signo de dos puntos representa a toda la
fila o columna.
C = [-1 2 3; 1 1 9; -1 2 4];
x = C(:,1);
y = C(:,2);
z = C(:,3);
Generar la submatriz x con los elementos de la primera columna de
C, la y con los de la segunda columna y la z con los de la tercera.
48
OPERADOR DE DOS PUNTOS
MATLAB
Se crearon los siguientes vectores:
06/04/2011
25
49
OPERADOR DE DOS PUNTOS
MATLAB
Este operador tambin sirve para generar matrices nuevas. Si se usa un
signo de dos puntos para separar dos enteros, el operador de dos
puntos generar todos los enteros entre los dos enteros especificados.
T=1:10;
tiempo=0.0:0.5:4;
Obtendremos:
50
OPERADOR DE DOS PUNTOS
MATLAB
06/04/2011
26
51
OPERADOR DE DOS PUNTOS
MATLAB
Otra aplicacin de este operador es la creacin de una submatriz a
partir de otra matriz.
D=[ 1 -1 0; 2 4 6 ; 1 3 7; -2 4 -5];
D_1=D(1 , :);
Genera la primera fila de D
D_2=D(: , 3);
Genera la tercera columna de D.
D_3= D (:, 2 : 3);
Generar una submatriz compuesta por las columnas 2 y 3 de la matriz D.
D_4= D (3 : 4 , 1 : 2):
Generar una submatriz compuesta por las filas 3 y 4 y las columnas 1 y 2 de
la matriz D.
52
OPERADOR DE DOS PUNTOS
MATLAB
06/04/2011
27
53
COMENTARIOS
MATLAB
Comentarios: es tambin buena prctica de programacin agregar
comentarios generales del funcionamiento del programa, como as
comentar la funcin de alguna lnea especifica. Para realizar esta tarea
Matlab dispone de un operador representado por el signo de porcentaje
(%), las palabras que siguen a un signo de porcentaje no se ejecutaran
como instrucciones. VER
54
FUNCIONES MATEMATICAS
MATLAB
Funciones matemticas: Las expresiones aritmticas requieren a
menudo otros clculos de los ya visto. Por ejemplo, muchas
expresiones requieren el empleo de logaritmos, funciones
trigonomtricas, polinomios y nmeros complejos.
Matlab contiene varias funciones para realizar estos clculos
adicionales.
Por ejemplo, si queremos calcular el seno de un ngulo y almacenar el
resultado en a, hacemos:
a= sin (angulo); La funcin sin supone que el argumento est en
radianes. Si el argumento contiene un valor en grados, podemos
convertirlo a radianes dentro de la referencia de la funcin:
a = sin (angulo*pi/180);
06/04/2011
28
55
CICLOS
MATLAB
Ciclos: un ciclo es una estructura que nos permite repetir una serie de
instrucciones una cantidad de veces.
Ciclo for: tiene la siguiente estructura general:
for ndice=expresin
instrucciones
end
La expresin es una matriz (que podra ser un escalar o un vector) y las
instrucciones se repiten tantas veces como columnas hay en la matriz
de la expresin. Cada vez que se repite el ciclo, el ndice tiene le valor
de uno de los elementos de la matriz de la expresin.
56
CICLOS
MATLAB
Ciclo for. las reglas para escribir y usar el ciclo for son las siguientes:
1. El ndice de un ciclo for debe ser una variable.
2. Si la matriz de la expresin es la matriz vaca, no se ejecutar el ciclo. El control
pasar a la instruccin end.
3. Si la matriz de la expresin es un escalar, el ciclo se ejecutar una vez, y el
ndice contendr el valor del escalar.
4. Si la matriz de la expresin es un vector de fila, en cada repeticin del ciclo el
ndice contendr el siguiente valor del vector.
5. Si la matriz de la expresin es una matriz, en cada repeticin del ciclo el ndice
contendr la siguiente columna de la matriz.
6. Al completarse un ciclo for, el ndice contendr el ltimo valor utilizado.
7. Se puede usar el operador de dos puntos para definir la matriz de la expresin
usando el siguiente formato:
for k=ndice : incremento : lmite.
06/04/2011
29
57
INSTRUCCIONES DE SELECCION
MATLAB
Una instruccin de asignacin nos permite hacer una pregunta o probar una
condicin para determinar que pasos se ejecutarn a continuacin.
Instruccin if: permite comparar una expresin lgica, si la expresin lgica es
verdadera, ejecutamos las instrucciones que estn entre la instruccin if y la
instruccin end.
Si la expresin lgica es falsa, saltamos de inmediato a la instruccin que
sigue a la instruccin end.
Es importante sangrar las instrucciones dentro de una estructura if para que
sean ms fcil de entender.
Ejemplo: if h < 10
cont = cont + 1
x=a*b;
end
58
OPERADORES RELACIONALES Y LOGICOS
MATLAB
Matlab cuenta con seis operadores relacionales para comparar dos matrices de
igual tamao.
Se usan matrices o expresiones de matrices en ambos lados de un operador
relacional para dar otra matriz del mismo tamao.
Cada entrada de la matriz resultante contiene un 1 si la comparacin es
verdadera, cuando se aplica a los valores resultantes de las posiciones
correspondientes de la matrices; de lo contrario, la entrada de la matriz
resultante contiene un cero.
Una expresin que contiene un operador relacional es una expresin lgica
porque el resultado es una matriz que contiene ceros y unos que pueden
interpretarse como valores falso o verdaderos, respectivamente; la matriz
resultante tambin se denomina matriz 0-1.
06/04/2011
30
59
OPERADORES RELACIONALES Y LOGICOS
MATLAB
Matlab cuenta con seis operadores relacionales para comparar dos matrices de
igual tamao.
Operador relacional Interpretacin
< Menor que
<= Menor que o igual
> Mayor que
>= Mayor que o igual
== Igual
~= No igual
60
OPERADORES RELACIONALES Y LOGICOS
MATLAB
Tambin podemos combinar dos expresiones lgicas usando los operadores
lgicos no (not), y (and) y o (or).
Operador lgico Smbolo
no ~
y &
o |
Los operadores lgicos se unen en expresiones completas. Por ejemplo:
a > b & b > c es un expresin lgica vlida.
La jerarqua, del nivel ms alto al ms bajo, es ~ , & y |. Se pueden usar parntesis para alterar la
jerarqua.
En Matlab, cualquier valor distinto de cero se considera verdadero; los valores de cero son falsos.
06/04/2011
31
61
BIBLIOGRAFIA
MATLAB
SOLUCION DE PROBLEMAS DE INGENIERIA CON MATLAB
2 Edicin - Delores M. Etter - Prentice Hall
ANALISIS NUMERICO Y VISUALIZACION GRAFICA CON MATLAB
Shoichiro Nakamura - Prentice Hall
INGENIERIA DE CONTROL MODERNA
3 Edicin - Katsuhiko Ogata - Prentice Hall
SISTEMAS DE CONTROL EN TIEMPO DISCRETO
2 Edicin - Katsuhiko Ogata - Pearson Educacin
SISTEMAS DE CONTROL EN INGENIERIA
Paul h. Lewis * Chang Yang - Prentice Hall
SIMULACION Y CONTROL DE PROCESOS POR ORDENADOR
Antonio Creus - Marcombo