You are on page 1of 23

INTRODUCCION AL USO DE MATLAB

TALLER DE COMPUTO

INTRODUCCION AL USO DE MATLAB


Guia del Taller

INTRODUCCION
MATLAB es un ambiente de cmputo tcnico para el clculo numrico de alto rendimiento con capacidad de visualizacin, el cual fu desarrollado por la empresa The MATH WORKS Inc. MATLAB integra anlisis numrico, clculo matricial, procesamiento de seales y grficas. MATLAB toma su nombre de MATrix LABoratory (laboratorio de matrices), pues originalmente fu creado como un auxiliar en la programacin de clculo matricial, por lo que el elemento bsico de clculo que maneja es la matriz. La versin estndar de MATLAB incorpora una gran variedad de comandos y funciones matemticas de uso general relacionadas con tpicos como Manipulacin de Matrices, Funciones Trigonomtricas, Funciones Hiperblicas, Algebra Lineal Numrica, Anlisis de Datos, Interpolacin, Graficacin, Manejo de Archivos, etc. Existen adems paquetes opcionales de funciones especializadas en diversas reas tcnicas tales como Control, Procesamiento de Seales, Lgica Difusa, Procesamiento de Imgenes, Redes Neurales, etc. El presente escrito es una guia para el taller introductorio al uso de MATLAB para Windows, versin estndar, y su objetivo es proporcionar los elementos esenciales para iniciarse en el uso de esta herramienta y facilitar su estudio individual, por lo que no se presentan todas las posibilidades de clculo que MATLAB ofrece ni todas las opciones de uso que esta plataforma brinda. Para un estudio a profundidad sobre el uso de esta herramienta se recomienda consultar los manuales User's Guide y Reference Guide, as como tambin puede obtenerse en espaol el libro "MATLAB edicin de estudiante, Versin 4, gua de usuario" de la editorial Prentice Hall el cual contiene los discos de instalacin de la versin estudiantil.

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

INICIO
Estando dentro de la plataforma operativa Windows la invocacin de MATLAB presenta una ventana denominada ventana de comandos en la que se muestran en la parte superior un listado de comandos para iniciarse en el uso de la herramienta: intro, demo, help help, as como tambin comandos para obtener mayor informacin: help, whatsnew, info, subscribe. A continuacin de los comandos se muestra el smbolo que indica la linea de entrada de rdenes o comandos: Es en esta lnea que se proporcionan los comandos a ser ejecutados inmediatamente por MATLAB, como los listados anteriormente. Por ejemplo, el proporcionar el comando:

help

Todos los comandos u operaciones deben terminarse con la tecla enter para ser aceptados por MATLAB

mostrar un listado de los diferentes tpicos en que MATLAB proporciona informacin de ayuda. Puede consultarse tambin este tipo de informacin a travs del men Help de la barra de mens de la misma ventana de comandos de MATLAB. Otros comandos importantes para el ambiente de trabajo son: cd dir quit Cambia el directorio de trabajo Muestra el contenido del directorio de trabajo Termina la sesin de trabajo en MATLAB

Nota: En los ejemplos presentados en esta gua se indicar del lado izquierdo y en letras resaltadas (negritas) los comandos y operaciones que se proporcionan directamente en la lnea de comandos de MATLAB y del lado derecho se proporcionarn algunos comentarios relacionados con el comando.

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

OPERACIONES BASICAS
En la linea de entrada de comandos puede proporcionarse directamente la indicacin de cualquier operacin matemtica de la misma manera en que esta se escribe normalmente (estilo calculadora), por ejemplo: 75+12*(275/3) ans= 1175 La abreviatura ans (por "answer" = respuesta) indica el resultado de la operacin realizada.

Algunas otras operaciones bsicas y los smbolos empleados por MATLAB para su uso son: + suma, - resta, * multiplicacin, / \ divisin, ^ potencia

Cuando una linea de comando se termina con ";" el resultado que se generara por la ejecucin del comando no es mostrado en pantalla. Pueden escribirse varias operaciones en una sola linea de comando siempre que estas se separen por "," Por ejemplo: 75 + 3, 3 - 2, 75 - 3 ans = 78 ans = 1 ans = 72 75 + 3; La operacin se realiza pero no se despliega el resultado por terminarse la operacin con ";" Los tres resultados se desplegarn por no terminarse con ";"

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

OPERACIONES RELACIONALES Y LOGICAS


MATLAB permite operaciones relacionales y lgicas, considerando como resultado de este tipo de operaciones nicamente dos valores: falso y verdadero. El falso corresponde a un 0 y el verdadero a un 1. Por ejemplo: 5>4 ans = 1 4>5 ans = 0 (5>4) & ~(4>5) La operacin relacional es "4 mayor que", lo cual es falso, a lo que le corresponde un valor de 0. La operacin relacional es "5 mayor que 4", lo cual es cierto, a lo que le corresponde un valor de 1.

La operacin relacional es "5 mayor que 4 y negacin de 4 mayor que 5". "&" es el smbolo para el operador lgico AND y "~" es el smbolo para el operador lgico negacin.

ans = 1 (5>4) | (4>5) ans = 1 La operacin relacional es "5 mayor que 4 4 mayor que 5". " |" es el smbolo para el operador lgico OR.

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

VARIABLES
En una operacin pueden emplearse variables a las que previamente se les ha asignado algn valor. Las variables se nombran comenzando con una letra y puede estar seguida de letras y nmeros, existiendo diferencia entre minsculas y maysculas. Por ejemplo: dias = 75 dias= 75 meses = 12 meses= 12 MESES = 3 MESES= 3 dias + meses * (275 / MESES) ans= 1175 Existe una manera de conocer todas las variables que se han asignado en una sesin de trabajo de MATLAB a travs del comando who: who Your variables are: MESES y se obtiene mayor informacin sobre las variables asignadas con el comando whos: ans dias meses Al ser MATLAB sensitivo a maysculas y minsculas meses y MESES representan variables distintas. Al no terminarse la lnea de comando con " ;" se despliega inmediatamente el resultado de la asignacin del valor a la variable.

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

whos Name

Size

Elements 1 1 1 1 8 8 8

Bytes Density Complex 8 Full No Full No Full No Full No

MESES 1 by 1 ans 1 by 1 dias 1 by 1 meses 1 by 1

Grand total is 4 elements using 32 bytes Es posible borrar una o todas las variables empleadas, asimismo es posible almacenar en disco las variables con las que se est trabajando (una, varias o todas) y recuperarlas en cualquier otra sesin de trabajo. clear meses who Your variables are: MESES ans dias Todas las variables vigentes se almacenan en el disco bajo el nombre de ESTAS Se borran todas las variables vigentes y se comprueba que ya no existen Se borra slamente la variable meses Se muestran nuevamente las variables vigentes para observar que efectivamente meses fu borrada

save ESTAS clear who Your variables are:

load ESTAS who Your variables are: MESES ans dias

Se leen las variables almacenadas bajo el nombre ESTAS y se comprueba su existencia

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

FUNCIONES MATEMATICAS
MATLAB incluye una gran cantidad de funciones matemticas, las cules operan al escribir el nombre de la funcin seguidas inmediatamente, entre parntesis, del operando, el cual puede ser un nmero o una variable o un conjunto de estas. Por ejemplo: sin(pi/2) ans = 1 log10(100) ans = 2 sqrt(81) ans = 9 Los comandos help elfun y help specfun muestran los nombres de las funciones matemticas elementales y especializadas con que cuenta MATLAB, mientras que help seguido del nombre de una funcin en particular muestra la forma en que la funcin debe utilizarse. Por ejemplo: help sign SIGN Signum function. For each element of X, SIGN(X) returns 1 if the element is greater than zero, 0 if it equals zero and -1 if it is less than zero. For complex X, SIGN(X) = X ./ ABS(X). Raiz cuadrada de 81 Logaritmo base 10 de 100 sin(x) calcula el seno de x y MATLAB reconoce la variable pi como una variable exclusiva cuyo valor es 3.14159....

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

NUMEROS COMPLEJOS
Para trabajar con nmeros complejos se emplea el caracter i o el caracter j para representar el nmero -1 y se realizan las operaciones deseadas de la misma manera que con nmeros reales. Por ejemplo: numim = 3 + 5i A la variable numim se le asigna el nmero complejo cuya parte real es 3 y cuya parte imaginaria es 5

numim = 3.0000 + 5.0000i abs(numim) ans = 5.8310 real(numim) ans = 3 imag(numim) ans = 5 numim * MESES ans = 9.0000 +15.0000i En la multiplicacin del nmero imaginario tanto la parte real como la parte imaginaria son multiplicados por el valor indicado La funcin imag(x) calcula la parte imaginaria de x La funcin real(x) calcula la parte real de x La funcin abs(x) calcula el valor absoluto o magnitud de x

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

VECTORES
Los vectores o arreglos de valores (arrays) son un conjunto de nmeros o variables que se agrupan bajo un slo nombre, permitindose de esta manera que una operacin pueda ser realizada sobre todos los valores del vector de manera simultnea, en lugar de realizar la operacin a cada uno de los valores de manera manual e independiente. Se definen vectores del tipo fila o rengln y vectores del tipo columna, los cules varan en la manera en que los elementos del vector son acomodados. Por ejemplo: diasfila = [1 2 3 4 5 6 7] diasfila = 1 2 3 4 5 6 7 Los vectores fila se definen separando sus elementos por espacios o por ","

diascol=[1; 2; 3; 4; 5; 6; 7] diascol = 1 2 3 4 5 6 7

Los vectores columna se definen separando sus elementos por ";"

Se puede realizar cualquier tipo de operacin o funcin sobre un vector obtenindose como resultado otro vector de la misma longitud (igual nmero de elementos) cuyos elementos corresponden al resultado operado sobre cada uno de los elementos del vector operando. Por ejemplo: 2*diasfila ans = 2 4 6 8 10 12 14 La funcin besselj(1,x) calcula el valor de la funcin bessel de orden 1 de x (de cada uno de sus elementos) Cada elemento de diasfila es multiplicado por 2

besselj(1,diascol) ans =
Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

1"

0.4401 0.5767 0.3391 -0.0660 -0.3276 -0.2767 -0.0047 min(diasfila) ans = 1 mean(diasfila) ans = 4 Es posible definir un rango de valores para ser asignados a un vector. El rango de valores se define especificando un valor inicial, un valor de incremento y un valor final, separados todos ellos por ":", por ejemplo: 2:.5:5 ans = 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000 c=2:.5:5; 2*c ans = 4 La multiplicacin y divisin entre vectores puede hacerse elemento a elemento o como operacin matricial. En el primer caso los vectores operandos deben ser de la misma longitud y el resultado es un vector con igual longitud. En el segundo caso los vectores pueden ser de longitud diferente, uno de ellos debe ser vector fila y el otro vector columna y el resultado es una matriz con nmero de filas y columnas dependiendo de la longitud de cada vector operando. 5 6 7 8 9 10 El rango de valores es desde 2 hasta 5 con incrementos de .5 La funcin mean(x) calcula el valor promedio de todos los elementos del vector x

La funcin min(x) proporciona el elemento del vector x cuyo valor es el ms pequeo de todo el vector

El rango de valores anterior se asigna a la variable c

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

11

Por ejemplo: a=[ 1 2 3 4 5] a= 1 2 3 4 5 El vector b es un vector columna El vector a es un vector fila

b=[6; 7; 8] b= 6 7 8 b' ans = 6 b.*b ans = 36 49 64 b*a ans = 6 12 18 24 30 7 14 21 28 35 8 16 24 32 40 7 8

El operador " ' " convierte un vector fila a columna y viceversa

La multiplicacin elemento a elemento entre vectores se indica con un " . " que precede al signo de multiplicacin "*"

La multiplicacin matricial entre vectores se indica directamente con el signo de multiplicacin "*"

Dentro de un vector cada elemento tiene un nmero consecutivo que lo identifica comenzando desde el nmero 1. El direccionamiento de uno o varios de los elementos de un vector se indica por medio de un parntesis y el nmero de elemento o el rango de elementos deseados. Por ejemplo: b(1) El elemento 1 del vector b es el nmero 6

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

12

ans = 6 b(length(b)) La funcin length(x) indica el nmero de elementos que tiene el vector x, por lo que b(length(x)) indica el valor que posee el ltimo elemento del vector x

ans = 8 a(2:4) ans = 2 3 4 Se asigna la multiplicacin vectorial b*a a la matriz d y se despliegan sus valores Se despliegan los elementos del 2 al 4 del vector a

d=b*a d= 6 12 18 24 30 7 14 21 28 35 8 16 24 32 40 d(1:2,3:5) ans = 18 24 30 21 28 35

Se despliegan los valores del vector d correspondientes exclusivamente a las filas 1 a 2 y a las columnas 3 a 5

En MATLAB existen muchas funciones que operan sobre vectores y sobre matrices cuyas definiciones pueden consultarse a travs de help. Algunos conjuntos de funciones de este tipo se encuentran bajo las categorias: Matrices Elementales y Manipulacin de Matrices, Funciones Matriciales, Matrices Especializadas, etc.

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

13

GRAFICAS
La forma ms sencilla de generar una grfica dentro de MATLAB es a travs del comando plot(x,y), en donde x,y son un conjunto de puntos (abscisa,ordenada) a ser marcados en un plano. La graficacin por omisin genera lineas rectas entre los puntos marcados mostrando una grfica contnua, caracterstica que puede ser variada de diversas maneras. Por ejemplo: los comandos:

dias=[1 2 3 4 5 6 7]; Se definen los elementos de los vectores dias y bolsa bolsa=[3600 3550 3720 3740 3760 3680 3680]; plot(dias,bolsa) Se grafica un conjunto de puntos considerando que dias corresponde al eje horizontal y bolsa al eje vertical producen la grfica que se muestra a continuacin:

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

14

Al utilizar este comando siempre se define de manera automtica la escala de los ejes horizontal y vertical de acuerdo a los valores mnimos y mximos de los puntos a graficar, parmetros que igualmente pueden cambiarse por valores deseados.

El siguiente comando obliga a que MATLAB slo marque unos pequeos crculos en los puntos a graficar, sin unirlos con lineas rectas:

plot(dias, bolsa,'o')

El caracter 'o' indica que los puntos se marquen con un crculo

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

15

El comando help plot muestra todas las posibilidades de uso de plot as como algunos comandos asociados a la graficacin como SEMILOGX, SEMILOGY, LOGLOG, GRID, CLF, CLC, TITLE, XLABEL, YLABEL, AXIS, AXES, HOLD y SUBPLOT. Obsrvense los resultados de graficacin obtenidos con los siguientes comandos: bolsa2=[3680 3750 3650 3640 3600 3650 3600]; plot(dias,bolsa,dias,bolsa2) Se define un nuevo vector bolsa2 Se grafican simultneamente los valores de bolsa y bolsa2 grid Se genera un cuadriculado en la grfica actual xlabel('dias') Se escribe el ttulo 'dias' en el eje horizontal ylabel('indice de la bolsa') Se escribe el ttulo 'ndice de la bolsa' en el eje vertical title('RESULTADOS DE LA BOLSA DE VALORES') Se escribe el ttulo 'RESULTADOS DE LA BOLSA DE VALORES' en la parte superior de la grfica

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

16

Otras formas de graficar en un plano dentro de MATLAB incluyen el tipo de grficas de barras y de escalera as como la posibilidad de mostrar varias grficas en una misma ventana. MATLAB tiene tambin la capacidad de graficar en tercera dimensin y de emplear grficas de malla y de superficie.

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

17

ARCHIVOS DE EJECUCION
MATLAB ejecuta un comando u operacin directamente a travs de la linea de comando, tal y como se ha mostrado en los ejemplos anteriores, sin embargo un comando a ejecutar puede ser tambin el nombre de un archivo que contenga una secuencia de operaciones y comandos que se desean sean procesadas en conjunto. Esto tiene como ventaja el no tener que escribir cada vez todas las instrucciones que se desean ejecutar en varias ocasiones, sino que simplemente se invoca el archivo en donde ya estn almacenadas. El archivo puede tener cualquier nombre pero debe tener el apellido m. MATLAB posee un grupo de comandos para controlar el flujo de ejecucin de un conjunto de instrucciones el cual es especialmente util dentro de los archivos de ejecucin, tal y como se emplean en los lenguajes de programacin. Estos comandos permiten construir tres tipos de estructuras: los lazos for, los lazos while y la estructura if-else-end. A continuacin se presenta el listado de un archivo .m el cual genera los resultados mostrados en la grfica contgua.

% PROG1.M % % DEMOSTRACION DEL PROCESO DE MODULACION EN AMPLITUD DE DOBLE BANDA % LATERAL Y PORTADORA SUPRIMIDA CON SEAL DE INFORMACION SENOIDAL % Definicin de la variable del tiempo correspondiente a 2 milisegundos: % liminf=0; limsup=.002; numpuntos=100; t=liminf:(limsup-liminf)/numpuntos:limsup; % Definicin de un vector correspondiente a los valores de una senoidal de 1000 KHz % f=sin(2*pi*1000*t); % Definicin de un vector correspondiente a los valores de una senoidal de 10000 KHz % Sp=sin(2*pi*10000*t); % Definicin de un vector correspondiente a los valores de la modulacin de la seal Sp % por parte de f en amplitud de doble banda lateral y sin portadora. % Sam=f.*Sp;

% Clculo de los espectros de frecuencia de las seales anteriores %


Departamento de Electrnica, Sistemas e Informtica ITESO

INTRODUCCION AL USO DE MATLAB

fs=numpuntos/(limsup-liminf); [F,f1]=psd(f,[],fs); [SP,f2]=psd(Sp,[],fs); [SAM,f3]=psd(Sam,[],fs);

% Parmetro que indica el nmero de muestras por unidad de % tiempo que se tienen de la seal a calcular su espectro

% Graficacin de las seales en el dominio del tiempo y sus respectivos espectros de frecuencia % subplot(3,2,1); plot(t,f); ylabel('amplitud'); xlabel('tiempo'); title('Seal Moduladora'); subplot(3,2,3); plot(t,Sp); ylabel('amplitud'); xlabel('tiempo'); title('Seal Portadora'); subplot(3,2,5); plot(t,Sam); ylabel('amplitud'); xlabel('tiempo'); title('Seal Modulada'); subplot(3,2,2); plot(f1,F); ylabel('amplitud'); xlabel('frecuencia'); title('Seal Moduladora'); subplot(3,2,4); plot(f2,SP); ylabel('amplitud'); xlabel('frecuencia'); title('Seal Portadora'); subplot(3,2,6); plot(f3,SAM); ylabel('amplitud'); xlabel('frecuencia'); title('Seal Modulada'); end;

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

1!

Listado de archivo .m que muestra el uso de las estructuras for e if-else.

% PROG2.M % % DEMOSTRACION DEL USO DE ESTRUCTURAS 'FOR' E 'IF-ELSE' % PARA LA GENERACION DE UNA SEAL MUESTREADA % Definicin de la variable del tiempo correspondiente a 2 milisegundos: % t = 0:.00001:.002; % Definicin de un vector correspondiente a los valores de la suma de dos % seales senoidales de 1000 KHz y 3017 KHz de frecuencia % f = 2*sin(2*pi*1000*t) + 1.3*cos(2*pi*3017*t); % Definicin del perodo de muestreo Tm y el tiempo en que se toma la % muestra To % Tm = .0001; To = Tm/2; % Toma de muestras y formacin de un vector que represente la seal muestreada % for n = 1:length(f) ; Se analizan todos los valores de f to = .00001*(n-1); if (to/Tm-floor(to/Tm))*Tm < To fm(n) = f(n); else fm(n) = 0; end end ; Se calcula el tiempo actual ; Si el tiempo actual corresponde al ; tiempo en que se toma la muestra entonces ; la seal muestreada toma el valor de f ; si no la seal muestreada toma el valor de 0

% Graficacin simultnea de f y su muestreo % plot(t,f,t,fm); end;

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

2"

Adems de los archivos de ejecucin .m de la misma manera pueden definirse nuevas funciones de MATLAB para ser utilizadas dentro de un archivo de ejecucin o para ser procesadas directamente en la lnea de comandos. Se recomienda consultar la informacin indicada en la INTRODUCCION para conocer el procedimiento adecuado para realizar esto.

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

21

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

22

SIMULINK
SIMULINK es un paquete computacional para el modelado, simulacin y anlisis de sistemas dinmicos, el cual opera integrado a la plataforma MATLAB. SIMULINK ofrece una interfase grfica de usuario para el modelado de sistemas permitiendo la construccin de modelos como diagramas de bloques, de manera tal que el sistema de inters se construye eligiendo bloques e interconectndolos de la manera adecuada. SIMULINK incluye una serie amplia de bloques de componentes bsicos para la construccin de modelos de sistemas, permite la creacin de nuevos bloques por parte del usuario y ofrece la posibilidad de aadir libreras opcionales de bloques de diversas areas de aplicacin.

PUESTA EN OPERACIN DE SIMULINK

Departamento de Electrnica, Sistemas e Informtica

ITESO

INTRODUCCION AL USO DE MATLAB

23

TALLER DE COMPUTO: INTRODUCCION AL USO DE MATLAB Ing. Jorge Arturo Pardias Mir Departamento de Electrnica, Sistemas e Informtica Instituto Tecnolgico y de Estudios Superiores de Occidente Febrero de 1997

Departamento de Electrnica, Sistemas e Informtica

ITESO