Está en la página 1de 56

CURSO BSICO

Autor: Ing. LUIS ANTONIO BAUTISTA

CONTENIDO DEL CURSO


SEMA NA 1 2 3 CLASE 1 2 3 4 5 6 7 8 5 6 7 8 9 10 9 10 11 12 13 14 15 16 17 18 19 20 HORAS 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 TEMAS Entorno de Matlab, Format, Comandos bsicos, Help Operaciones con complejos, Funciones, Operadores Matrices, Vectores, Indexacin. Matrices, Vectores. EXAMEN. Ordenes bsicas, Work Space, Directorios, Operadores Sobrecargados, Funciones Matemticas y Exponenciales. Operadores de Conjuntos, Operadores de Bits. Operadores de matrices, Constantes, Redondeo,. Funciones especiales, Funciones con complejos, Funciones de Cadenas Funciones de Conversin, Funciones de Fechas, Grficas 2D,Grficas 3D. Estructuras de control, Definicin de funciones, Inline, Eval, Manejo de argumentos, Entradas interactivas, depuracin EXAMEN. Races de ecuaciones, Integracin, derivadas,. Ecuaciones Diferenciales Lectura y escritura de archivos, Tratamiento de datos SONIDO. Tratamiento de datos IMAGENES EXAMEN. GUI de Matlab. GUI de Matlab. Informe Final. trabajos en grupo. ENTREGA DE TRABAJOS.

TOTAL HORAS DEL CURSO:

40 Horas.

EL ENTORNO DE MATLAB (CLASE N1)

Ilustracin 1 Entorno de Matlab

En el entorno de Matlab se pueden distinguir tres ventanas principales: Nota: si alguna de estas ventanas no est visible se activan mediante el men View/Desktop. De esta manera es posible visualizar las ventanas deseadas en diferentes aspectos (horizontal, vertical, en mozaico o como ventanas independientes de Windows).

VENTANA Command Window Current Directory

Workspace

Command History

UTILIDAD Es donde se digitan las rdenes, acompaada del pront >> que indica que Matlab est listo para ejecutar alguna orden. Muestra los archivos o ficheros del directorio activo. Antes de empezar a trabajar en matlab siempre verifique que se encuentre en el directorio apropiado donde encontrar las variables y programas que necesite. Contiene informacin de todas las variables que se hayan utilizado y permite modificar sus valores. Para observar o modificar las variables mediante Workspace debe hacer doble clic sobre el smbolo. Muestra un listado de comandos ya ejecutados en Command Window. Permite volver a ejecutarlos con un simple doble clic. Este comando se complementa con la teclas de flecha de modo que permite buscar una orden ya ejecutada ahorrando mucho tiempo Otra forma de ejecutar estas rdenes es arrastrando desde la ventana de Command Windows hasta la ventana de Command History mediante Clic sostenido.

Ordenes Generales.
Gestin de la ventana de ordenes (Command Window). ORDEN UTILIDAD = Orden para asignar variables: Ejemplo: a=2 ; Separador de rdenes: Ejemplo: a=2;b=3;c=4; Este comando ejecuta la orden sin mostrar el resultado en pantalla. quit salir de Matlab exit: salir de matlab clc Limpia la pantalla del CommandWindow home Posiciona el promp al inicio de la ventana sin borrar el contenido de la Command Windows. Teclado Junto con la ventana de historial permite buscar comandos ya ejecutados. more on Activa la orden more q: desactiva el modo listado Esc: Nuevo listado. Enter: Nueva lnea de listado. more off Desactiva la orden more. more(n) Permite visualizar (n) lneas en la Coman Window help Despliega un listado de comandos Matlab helpwin Ventana de ayuda. helpdesk Ayuda en modo hipertexto. diary Almacenado de una sesin de trabajo format Formato de los datos, FORMAT Por defecto es formato SHORT. FORMAT SHORT Formato de cinco dgitos. FORMAT LONG Formato de 15 dgitos. FORMAT SHORT E Formato flotante de 5 digitos. FORMAT LONG E Formato flotante de 15 digits. FORMAT SHORT G El mejor formato flotante de 5 digitos. FORMAT LONG G El mjeor formato flotante de 15 digitos. FORMAT HEX Formato Hexadecimal. FORMAT + Formato de simbolo +, - Ignora la parte imaginaria. FORMAT RAT Formato de fraccionarios. demo Demostraciones ver Informacin sobre la versin. more Control del listado en la Command Windows CTRL+C Detiene la ejecucin de un programa. Edit Permite editar programas.

ACTIVIDADES PROPUESTAS ASIGNACIN DE VARIABLES REALES: Defina tres variables reales con diferentes: a=1;b=2;c=3;d=4; ASIGNACION DE VARIABLES COMPLEJAS: Defina tres variables complejas: a=2+3i; b=5-7j; d=i; ASIGNACION DE VECTORES: a=[3 4 5]; b=[2 3 -1]; c=[3;4,5;6]; ASIGNACION DE MATRICES: a=[3 4 5;6 7 8;1 2 3]; b=[1 2 3 4 5;8 9 6 7 5;2 3 4 2 1;6 7 8 4 2]; OPERACIONES ENTRE VARIABLES: a*b;a+b LA VARIABLE ANS: Esta variable almacena la ltima operacin realizada y es posible hacer operaciones con esta. a=2;b=3 define las variables (a) y (b) con los valores 2 y 3. a+b suma las variables (a) y (b). ans+4 Suma 4 a la ltima operacin realizada. ELIMINACIN DE VARIABLES: clear a Borra la variable a. clear a b c Borra las variables a,b,c. clear Borra todas la variable. a pi VISUALIZAR VARIABLES: Muestra la variable (a). Muestra el valor de =3.1415926.

GESTION DE LA VENTANA COMMAND HISTORY Mediante un doble clic sobre una orden almacenada en esta ventan ejecuta esta orden de nuevo Haga clic sostenido y arrastre una orden desde la venta historial hasta la ventana de comandos. Mediante las teclas de flechas () tambin es posible ejecutar ordenes ya ejecutadas que s encuentren almacenadas en la ventana de historial. GESTION DE LA VENTANA WORKSAPCE Esta ventana permite visualizar y modificar el valor de una variable. Para ello basta con hacer doble clic sobre la variable deseada que aparece en la lista de variables de esta ventana.

LIMPIAR LA PANTALLA DE LA VENTA COMMAND WINDOWS clc Limpia la pantalla por completo. home Ubica el promp Al inicio de pantalla pero no borra las rdenes ejecutadas. GESTION DE LA ORDEN DIARY diary on Activa el diario de actividades. diary off Desactiva el diario de actividades. edit diary Permite observar el contenido del archivo diary. La funcin de esta orden es permitir guardar las actividades realizadas durante una sesin de trabajo. GESTION DE LA ORDEN MORE Esta orden controla el nmero de lneas que se puede visualizar mediante un listado. generado. help more(n) more on help Muestra el contenido de la ayuda de Matlab. Permite observar (n) lneas de un listado por vez. Activa la orden (more). Muestra solo (n) lneas del archivo de ayuda.

Durante la visualizacin de un listado se puede oprimir: Tecla (ENTER) Para avanzar una lnea nueva del listado. Tecla (ESP) Para avanzar (n) lneas de visualizacin. Tecla (q) Para desactivar la visualizacin del listado. More off Desactiva la accin de la orden (more)

APARIENCIA DE VARIABLES MEDIANTE LA ORDEN FORMAT help format permite observar las posibles apariencias de una variable. format short apariencia de cinco decimales. format long apariencia de quince decimales. format rat apariencia fraccionaria.

LA AYUDA DE Matlab
ORDEN Help helpwin helpdesk lookfor: Demo UTILIDAD Despliega un listada temtica de ordenes Matlab en la Command Windows. Genera una ventana de ayuda. Ventana de ayuda de tipo hipertexto genera un listado de todas las expresiones que contengan el argumento Activa una rutina de ejemplos de aplicaciones Matlab

ACTIVIDADES PROUESTAS. Observe la ayuda de Matlab con la orden help, helpwin y helpdesk. Oserve las diferencias. Busque mediante lookfor las palabras que contengas la cadena dos. Intente detener la bsqueda con CTR+C. Abra el archivo de ejemplos de Matlab mediante demo.

ESTRUCTURA DE LA ORDEN HELP


Nota: Estas ordenes se consultan digitando help mas la orden de la tabla. ORDEN general ops lang elmat elfun specfun matfun datafun polyfun funfun graph2d graph3d specgraph graphics uitools strfun iofun timefun UTILIDAD Comandos de proposito general Operadores y caracteres especiales Manipulacin de lenguaje de programacin. Manipulacin elemental de matrices Funciones matemtica elementales Funciones matemtica especializadas matrices y algebra lineal. Anlisis de datos Interpolacin. Funciones de funciones Grfica bidimensionales. Grficas tridimensionales. Grficas especiales. Manipulacin de grficas. Diseo de GUI Manipulacin de cadenas de caracteres. Archivos entrada / salida. Tiempo y fecha.

Las siguientes ordenes de ayuda se ejecutan directamente sin digitar help ORDEN UTILIDAD demos Examples and demonstrations simulink Simulink. Herramientas de simulacin. dee Differential Equation Editor tour MATLAB Tour

El espacio de trabajo
Manipulacin del espacio de trabajo. ORDEN UTILIDAD who Lista de variables whos Lista de variables con su tamao y formato. workspace Ventana del espacio de trabajo clear Borra varianles. pack Consolida el espacio de trabajo load Carga un espacio de trabajo definido. save Almacena las variables del espacio de trabajo actual. quit Salir de Matlab. ACTIVIDADES PROPUESTAS: Defina varias variable mediante la orden de asignacin =. Liste las variables definidas con who. Realize un listado de las variables con whos. Observe el contendio del espacio de trabajo con worksape. Elimine solo dos variables. Elimine la totalidad de las variables. Optimize su memoria con la orden pack. Guarde todas las variables en un archivo mediante la orden save . Aplique la orden clear para borrar todas las variables. Recupere las variables iniciales mediante la orden load.

Manipulacin de funciones. ORDEN UTILIDAD What Lista de ficheros type Lista archivos m edit Editar un archivo m. which Busca archivos y funciones. pcode Analiza si hay algn error de una archivo (m). Si no encuentra errores, genera un archivo (p). Inmem Lista de funciones ACTIVIDADES PROPUESTAS: Observe los archivos existentes en su directorio de trabajo mediante what. Observe el contenido de un archivo mediante type. Edite un archivo en especial con edit. Determine el estado de un archivo (m) con la orden pcode. Obtenga una lista de funciones en memoria mediante inmem. Explique porque algunas veces la anterior orden no funciona. Si inmem no unciona, defina una funcin mediante inline.

Manipulacin de Directorios. ORDEN path Listado de rutas de acceso. dir Lista de ficheros delete Borra archivos mkdir Crear directorios. cd Dirigir a un directorio.

UTILIDAD

ACTIVIDADES PROPUESTAS: Elabore un directorio de trabajo denominado personal mediante mkdir Ingrese al directorio personal mediante cd. Dentro del directorio personal, defina varias variables y almacnelas majo el nombre trabajo1 mediante la orden save. Borre las variables mediante clear Recupere las variables cargando el archivo con load. Salga del directorio personal mediante cd .. Verifique que enrealidad ha salido del directorio, listando lor archivos con dir.

LOS OPERADORES (CLASE N2).


Operadores Aritmticos: Operadores sobrecargados. Operador Alter 1 Alter 2 minus a-b Minus(a,b) Diferencia plus a+b plus(a,b) Suma times a.*b Times(a,b) Producto elemento a elemento. mtimes a*b mtimes(a,b) Producto mldivide a\b mldivide(a,b) Divisin a la izquierda. mrdivide a/b mrdivide(a,b) Divisin a la derecha. rdivide a./b rdivide(a,b) Divisin a la derecha elemento a elemento ldivide a.\b ldivide(a,b) Divisin a la izquierda elemento a elemento. transpose a Transpose(a) Transpuesta ldivide a.\b ldivide(a,b) Divisin a la izquierda. power a.^b power(a,b) Potencia punto a punto mpower a^b mpower(a,b) Potencia uminus -a -a uplus +a -a horzcat [a b] horzcat(a,b) Concatenado horizontal vertcat [a;b] vertcat(a,b) Concatenado vertical ACTIVIDADES PROPUESTAS: Defina las variables: a=1;b=2;c=3;d=[3 4 5];e=[3 4 7;2 3 8;1 7 -1];d=[3;6;7] Pruebe cada uno de los operadores y observe los resultados.

Operadores lgicos Operador Alter 1 le a<=b lt a<b gt a>b ge a>=b eq a==b ne a~=b not ~a and a&b or a|b colon a:b end transpose a. ctranspose a' inv xor(a,b) any any(V) all all(V)

Alter 2 le(a,b) lt(a,b) gt(a,b) ge(a,b) eq(a,b) ne(a,b) not(a) and(a,b) or(a,b) colon(a,b) a(end) transpose(a) ctranspose(a) Inv(a)

Menor o igual que Menor que Mayor que Mayor o igual que Igual a No igual Negado. Producto lgico Suma lgica. Secuencia ascendente Final Transpuesta. Transpuesta conjugada Inversa. Unin excluyente. True=si hay algn elemento no nulo en el vector (V). True=si todos los elementos de (V) son no nulos.

ACTIVIDADES PROPUESTAS: Para cada uno de los operadores sobrecargados. pruebe que ambas formas conducen al mismo resultado. Operadores relacionales. Operador Alternativa 1 == eq(a,b) ~= ne(a,b) < lt(a,b) > gt(a,b) <= le(a,b)

Alternativa 2 a==b a~=b a<b a>b a<=b

Funcin Comparacin. 1=true, 0=false No igualdad. 1=true, 0=false Menor que. Mayor que. Menor o igual que.

Caracteres especiales. Operador Ejemplos Funcin : 1:5 = [1 2 3 4 5] 1:0.5:3 = [1 1.5 2 Rango de datos 2.5 3] () a=[1 2;3 4] a(1,2)=2 Leer Subndice de matriz [] a=[1 2 3 4;4 5 6 1] Definir Matriz {} a={lunes martes} Matriz de caracteres. . 2.234 Punto decimal .. cd .. Directorio padre. ... Continuar lnea de ordenes , [2,2,3] = [2 2 3] Separador de elementos. ; a=[2,3] b=[5,6] [a;b]=[2,3;5,6] Separador de filas. ; a=1; Ejecuta la orden sin mostrar el resultado. % %Comentario Definir comentario = a=2 Asignar valor a una variable a Transpuesta conjugada . a. Transpuesta a=edfr Definir string. [,] [2,3,4] = [2 3 4] Concatenacin horizontal [;] Concatenacin vertical cat .a=[1 2;5 7] b=[3 6;8 3] c=cat(n,a,b) Concatena matrices de dimensin (n). Permite generar matrices ndimensionales.

Operadores a nivel de Bits. Operador .bitand a=3=011 b=7=111 bitand(a,b)=011=3 bitcmp A=3=011 b=7 bitcmp(a,b)=1111100=124 bitor .bitor(a,b) .bitmax .bitxor .bitset bitget bitshift .bitor(a,b) .bitset(a,b) =Set a (1) el bit (b) del binario (a). -bitget(a,b) determina el bit (b) del binario (a) .bitshift(a,b)=bitshift(a.b.53) .bitshift(a,b,n)

Intercepto Complemento Union Mximo entero en punto flotante. Or excluyente Seteo a (1) Ajusta el binario (a) a un total de (n) bits, iniciando en la posicin (b)

Nota: los bits se cuentan de derecha a izquierda.

Operadores de Conjuntos. Operador Funcin union .a={uno dos} b={uno tres} union(a,b)={uno dos tres} unique .a={uno dos uno} uniqe(a)={uno dos} intersect .a={uno dos} b={dos tres} intersect(a,b)={dos} setdiff -a=[1 2 3 4] b=[2 3] setdiff(a,b)=[1 4] setxor -a=[1 2 3] b=[2 3 4] setxor(a,b)=[1 4] ismember -a=[1 2 3 4] ismember(a,1)=[1 0 0 0]

MANIPULACIN DE MATRICES (CLASE N3)


Matrices elementales Orden .zeros Nula .ones Unitaria .eye Idntica .repmat Replica .rand Aleatoria randn linspace logspace Funcin zeros(n)=Matriz nula nXn zeros(a,b)=Matriz nula aXb ones(n)=Matriz de unos nXn. ones(m,n)=Matriz de unos mXn .eye(n) =idntica nXn. eye(m,n)= idntica mXn .a=[1 2;4 7] repmat(a,1,2)=[1 2 1 2;4 7 4 7] .rand(n) =aleatoria n*n. .rand(m,n)=aleatoria mXn rand(2,3,2)=Matriz aleatoria tridimensional de tamao 2X3X2. Aleatoria Randn=rand distribuido normal. Espaciamiento lineal: s=Linspace(a,b) Vector de 100 elementos. S=linspace(a,b,N) Vector de N elementos. Espaciamiento Logaritmico: S=logspace(a,b) Vector de 50 elementos. s(1)=10^a s(50)=10^b S=logsapce(a,b,,N) vector de N elementos. s(1)=10^a s(N)=10^b

Consulta sobre Matrices Orden Funcin Ejemplos size Tamao a=[1,2,3;6,7,4] size(a)=2 3 length longitud Length(V) length([1 2 3 4])=4 ndims dimensiones a=[2 5 1;8 3 5]. ndims(a)=2 .disp Mostrar a=[7 7;2 3]. Disp(A) muestra la matriz matriz isempty Es vacio a=[]. isempty(a)=1 isequal Igualdad .isequal(a,b)=1 si a=b isnumeric .isnumeric(a) Verdadero para matrices numricas. islogical .islogical(a) Verdadero para matrices lgicas logical Convierte numrico a lgico.

Manipulacin de matrices. Orden Funcin Cambiar tamao reshape .diag blkdiag tril triu fliplr Matriz diagonal Bloque diagonal Triangular interior Triangular superior

Ejemplos .a=[1 2 3;2 5 7] reshape(a,3,2)=[1 5;2 3;2 7] La matriz final debe tener el mismo nmero de elementos de la matriz inicial. V=[1 2 3] diag(V)=[1 0 0;0 2 0;0 0 3] M=[1 2 3;5 8 1;3 8 5] diag(M)=[1 8 5] .blkdiag(2,3,4)=[2 0 0;0 3 0;0 0 4] M=[2 6 3;7 8 3;4 6 7]. tril(M)= [2 0 0;7 8 0;4 6 7] .fliplr(M) Intercambia columnas de (M)

flipud flipdim rot90 find end .ind2sub

.flipud(M) Intercambia filas de (M) .flipdim(M,d) Intercambia la dimensin (d) de (M). Rotar 90 Rot90(M) Rota 90 la matriz(M). Buscar. .find(M) Busca elementos no nulos de (M). Ultimo elemento A=[2 3 4;5 6 3;1 2 8] A(end)=8 A(end,end-1)=2 ndice de elemento M=[4 7 2;5 7 2;8 9 56]. tipo [i j]=ind2sub(size(a),find(a>5)) .i=[3;1;2;3;3] j=[1;2;2;3;3]

Variables y constantes especiales. Constante Funcin .ans Resultado mas reciente .eps Epsilon. Valor mas pequeo que puede representar la computadora .realmax Real mas grande que se puede representar en la computadora. .realmin Real mas pequeo que se puede representar en la computadora .pi Valor real. 3.1415926535897.... i, j Imaginario unitario. .inf Nmero infinito. .NaN Valor no numrico como en los casos de divisin por cero. .isnan Verdadero para variables no numricas .isinf Verdadero para valores infinitos. .isfinite Verdadero para valores finitos. .isnan Verdadero para valores no numricos. .why Generacin automtica de una frase.

Funciones Matemticas Elementales


Trigonomtricas. sin Seno sinh Seno hiperblico asin Seno inverso asinh Seno hiperblco inverso. cos Coseno cosh Coseno hiperblico acos Coseno inverso acosh Coseno hipereblico inverso tan Tangente tanh Tangente hiperblica atan Tangente inversa atan2 Tangente inversa a partir del cuadrante. atanh Tangente hiperblica inversa sec Secante sech Secante hiperblica

asec asech csc csch acsc acsch cot coth acot acoth

Secante inversa Secante hiperblica inversa Cosecante Cosecante hiperblica Cosecante inversa Cosecante hiperblica inversa Cotangente Cotangente hiperblica cotangente inversa cotangente hiperblica inversa

Exponenciales. exp Exponencial log logaritmo natural log10 logaritmo en base 10 log2 logaritmo en base2 pow2 Potencia de (2). realpow Potencia real. realpow(x,y)=x^y reallog Logaritmo natural de un nmero real. realsqrt Raiz cuadrada de un nmero positivo. sqrt Raiz cuadrada. nextpow2 Potencia mas cercana de (2). Operaciones de Complejos. abs Valor absoluto angle Angulo de fase del Complejo complex complex(a,b)=a+bi conj Conjugado de un complejo imag Parte imaginaria de un complejo real Parte real de un complejo unwrap isreal isreal(M)=1,0 1 si la matriz es real 0 si la matriz es compleja. cplxpair Ordena los nmeros en complejos conjugados cplxpair([2+3i 2-3i 4+5i 45i]) Redondeo y Remanentes. fix Redondeo hacia cero floor Redondeo entero hacia menos infinito. ceil Redondeo entero hacia mas infinito round Redondeo al entero mas cercano mod Mdulo resto de la divisin. rem Resto despus de la divisin sign Signo. Nota: REM(x,y) and MOD(x,y) son iguales si (x) y (y) tienen el mismo signo pero difieren si tienen diferente signo.

Funciones Especiales
Funciones Matemticas Especiales. airy Airy besselj Bessel de primer orden bessely Bessel de segundo orden besselh Bessel de tercel orden (Hankel) besseli Bessel modificada besselk Bessel modificada de orden 2 beta Beta betainc Beta incompleta betaln Logarimto de beta ellipj Jaconianos elipticos ellipke Integral eliptica erf Funcin de error

ercf erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot

dt

ercf(x)=1-erf(x) Funcin de error complemantaria escalada. Funcin de error inversa Integral exponencial Gamma Gamma incompleta Logarimto de Gamma. Funcin poligama Funcin de Legendre. Producto cruz Producto punto

Funciones numricas tericas. factor Factores primos de un nmero isprime Verdadero para nmeros primos primes Lista de nmeros primos gcd Mximo comun divisor lcm Mnimo comn mltiplo rat Aproximacin racional. rats Salida racional. perms Permutaciones nchoosek nchoosek(n,k)=Combinacin de (n) elementos en grupos de (k) elementos. factorial Factorial

Transformacin de coordendas. cart2sph Cartesianas a esfricas cart2pol Cartesianas a polares pol2cart Polares a cartesianas sph2cart Esfricas a cartesianas hsv2rgb Colores a cdigo (red-green-blue). rgb2hsv Colores (red.green-blue) a saturacin.

Operaciones de Cadenas y Caracteres.


General. Orden char double cellstr Funcin Carcter ASCII char(64)= '@' Convertir cadena en nmero con formato. Crear array tipo celdas de cadena. a=cellstr(['uno';'dos';'tre';'cua';'cin']) a=cellstr(['unos','doss';'tres','cuas']) Nota para que la orden funcione debe utilizar []. La mejor forma es utilizar las llaves para definir una matriz de caracteres a={'enero','febrero';'marzo','abril'}; blanks deblank eval a={'x^2+3*sin(y)','(x+y)^2';'4*sin(x)+3*y','(x^3+y3)'} Array de espacios Remover espacios en blanco Evaluar una cadena x=1;y=2; eval(a{1,1})=-1.8768

Chequeo de cadenas. Orden Funcin ischar Chequea si es cadena. iscellstr Chequea si es array tipo celdas isletter Chequea si es letra alfabtica isspace Cheque si es carcter espacio. Operaciones de Cadena. Orden Funcin strcat Concatenar cadenas strvcat Concatenar cadenas en forma vertical strcmp Comparar cadenas strncmp Comparar los primeros N caracteres. strcmpi Comparar cadenas ignorando case. strncmpi Comparar los primeros (n) carateres ignorando case findstr Busca uns cadena dentro de otra. strjust Justificar arrays.

strmatch strrep strtok

upper lower

Encontrar posibles coincidencias entre cadenas Reemplazar una cadena con otra. Inicio de cadena hasta coincidencia. Ejemplo: s=hola como esta; strtok(s,m) =hola co Convertir a maysculas Convertir a minsculas.

Conversin cadenas a nmeros. Orden Funcin num2str Nmero a cadena int2str Entero a cadena mat2str Matriz a cadena evaluable str2double Cadena a valor en precisin doble. str2num Matriz de strings a arrays numricas sprintf Escribir datos de formato a cadena. sscanf Leer cadena en en formato.

Conversin de Base numrica. Orden Funcin hex2num Hexadecimal a nmero de precisin doble hex2dec Hexadecimal a decimal. dec2hex Decimal a hexadecimal. bin2dec Binario a decimal. dec2bin Decimal a binario base2dec Base (B) a decimal. dec2base Decimal a base (B)

Tiempo y Fechas.
Fecha y tiempo actuales. Orden Funcin now Formato numrico de tiempo. date Fecha actual clock V=clock; V(1)=ao, V(2)=mes, V(3)=dia, V(4)=hora, V(5)=minuto, V(6)=segundos.

Funciones Bsicas. Orden Funcin datenum Valor numrico que representa el tiempo. Sintaxis: danetum(S). Ejemplo: datenum('19-May-1995') datenum(a,m,d) detenum(a,m,d,h,m,s) datestr Cadena de fechas en formato definido. Sintaxis: DATESTR(D,DATEFORM) D: Valor numrico que representa el tiempo como DATENUM Valores de DATEFORM: DATEFORM string Example 0 'dd-mmm-yyyy HH:MM:SS' 01-Mar-1995 15:45:17 1 'dd-mmm-yyyy' 01-Mar-1995 2 'mm/dd/yy' 03/01/95 3 'mmm' Mar 4 'm' M 5 'mm' 3 6 'mm/dd' 03/01 7 'dd' 1 8 'ddd' Wed 9 'd' W 10 'yyyy' 1995 11 'yy' 95 12 'mmmyy' Mar95 13 'HH:MM:SS' 15:45:17 14 'HH:MM:SS PM' 3:45:17 PM 15 'HH:MM' 15:45 16 'HH:MM PM' 3:45 PM 17 'QQ-YY' Q1-96 18 'QQ' Q1 datevec Vector de seis elementos de tiempo. [Y,M,D,H,MI,S] = DATEVEC(T)

Funciones de Fecha. Orden Funcin calendar Matriz calendario weekday Da de la semana. Ejemplo: [d,w] = weekday('19-Dec-1994') eomday Nmero de das del mes. Sintaxis: EOMDAY(a,m) Funciones de Tiempo. Orden Funcin cputime Teimpo de la mquina en segundos tic Inicio de crnmetro. toc Detencin de cronmetro y clculo del tiempo transcurrido. etime Tiempo transcurrido. Sintaxis: ETIME(T1,T0). T1 y T0 deben ser vectores de seis elementos tipo fecha. pause Detien a Matlab durante un nmero de segundos. Sintaxis: PAUSE(s)

Grficas Bidimensionales.
Grfica elementales X-Y. Orden plot Funcin Grfica lineal Plot(x,y,s) Valores de (s). y yellow m magenta c cyan r red g green b blue w white k black

. point o circle x x-mark + plus * star s square d diamond v triangle (down) ^ triangle (up) < triangle (left) > triangle (right) p pentagram h hexagram

: -. --

solid dotted dashdot dashed

x=0:0.1:10; y=sin(x); plot(x,y,'rs'); Como crear varias graficas en forma simultanea: x=0:0.1:10; y1=sin(x); y2=cos(x); plot(x,y1,'r',x,y2,'b'); Como crear un agrfica paramtrica: t=0:0.01*pi:2*pi; plot(3*cos(3*t),2*sin(2*t)); Grfica Logaritmica x=1:0.1:10 y=x.^2 loglog(x,y) Grfica semilogaritmica en el eje (x) Grfica semilogaritmica en el eje (y). Grfica polar t=0:0.01:2*pi; r=sin(t); polar(t,r,'r.'); Grfica con numeracin a izquierda y derecha. [AX,H1,H2] = PLOTYY(...) Retorna los tag para manipular los ejes creados en AX.

loglog

semilogx semlogy polar

plotyy

AX(1) es el eje izquierdo. AX(2) es el eje derecho plotyy(x,y1,x,y2)

Control de ejes. Orden Funcin axis Control de escala y apriencia de los ejes. plot(x,y1); axis([1 6 -2 2]); Acercamiento en la grfica. Zoom(2); Lneas de divisin grid on; grid off; Caja de ejes. box on; box off; Congela la grfica actual. plot(x,y1); hold on; plot(x,y2); Crea ejes en una posicin arbitraria. axes('position',[.1 .1 8 6]) Para observar su efecto aplique encuadre con el mouse. Crea grficas en mosaico. Ejemplo: x=0:0.01*pi:2*pi; y1=sin(x); y2=cos(x); y3=tan(x); subplot(3,1,1); plot(x,y1); subplot(3,1,2); plot(x,y2); subplot(3,1,3); plot(x,y3);

zoom grid box hold

axes subplot

Anotaciones en grficas. Orden Funcin legend Agregar leyendas. Legend(leg1,leg2,...) plot(x,y1,x,y2); legend(['uno';'dos']) Ttulo. Title(Titulo)

title

plot(x,y1,x,y2); legend(['uno';'dos']) title('X Vs Y'); xlabel ylabel text gtext Etiqueta del eje(x). Xlabel(t) xlabel('x'); Etiqueta del eje(y). Ylabel(f) ylabel('y'); Anotacin. Text(x,y,tetxo) text(2,1,'Hola'); Ubicar texto mediante Mouse. gtext(text) gtext(h)

Grficas Tridimensionales.
Grficas elementales 3-D. Orden Funcin plot3 Dibuja lneas y puntos en el espacio. Sintaxis: PLOT3(x1,y1,z1,s1,x2,y2,z2,s2,x3,y3,z3,s3,...) Ejemplo: Dibujo de una hlice. t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t); mesh Dibuja una superficie. 3D. Ejemplo: x=-1:0.1:1; y=-1:0.1:2; [x y]=meshgrid(x,y); z=eval(vectorize('x*exp(-x^2-y^2)')); mesh(x,y,z); NOTA: Tambienes posible: mesh(z); Tiene la misma funcin que mesh y adicionalmente agrega curvas de nivel. x=-1:0.1:1; y=-1:0.1:2; [x y]=meshgrid(x,y); z=eval(vectorize('x*exp(-x^2-y^2)')); meshc(x,y,z); Tiene la misma funcin de de mesh solo que es mas vistosa. x=-1:0.1:1; y=-1:0.1:2; [x y]=meshgrid(x,y); z=eval(vectorize('x*exp(-x^2-y^2)')); surf(x,y,z); Igual que surf y adiciona curvas de nivel.

meshc

surf

surfc

contour

x=-1:0.1:1; y=-1:0.1:2; [x y]=meshgrid(x,y); z=eval(vectorize('x*exp(-x^2-y^2)')); surfc(x,y,z); Grfica de contornos. Contour(x,y,z,n). n= Nmero de contronos x=-1:0.1:1; y=-1:0.1:2; [x y]=meshgrid(x,y); z=eval(vectorize('x*exp(-x^2-y^2)')); contour(x,y,z,10); Contour(z). Es posible.

Ejemplo de una grfica interactiva. [x y]=meshgrid(-2:0.1:2,-2:0.1:2); z=eval(vectorize('x*exp(-x^2-y^2)')); zmax=max(max(z)); zmin=min(min(z)); dz=(zmax-zmin)/10; nivel=zmin:dz:zmax; h=contour(x,y,z,nivel); clabel(h,'manual');

Manipulacin de Grficas.
Creacin y control de figuras. Orden Funcin figure Crea una figura gcf Captura el manipulable de la figura actual. clf Limpia la figura actual shg Muestra la ventana de la grfica. refresh Refresca la figura EJEMPLO: Genere una grfica y observe sus propiedades: a=gcf; get(a); EJEMPLO: Manipule los aatributos de la grfica obtenida: set(a,'Position',[10 20 300 600]); set(a,'Resize','Off');

Creacin y control de ejes. Orden Funcin subplot Crea ejes en mosaico. axes Crea ejes en una posicin arbitraria. gca Captura el mnipulabre de los ejes actuales cla borra los ejes. axis Controla la apariencia y la escala de los ejes. box Ejes caja caxis Controla el seudocolo de axis hold Antiva o desactiva la grfica actual ishold Retorna el estado del hold. EJEMPLO: Agregue ejes a la figura creada y observe sus atributos: b=gca; get(b); EJEMPLO: Manipule los lmites de los ejes de la figura creada: set(b,'XLim',[10 50]) set(b,'YLim',[30 100])

Generacin de objetos grficos. Orden Funcin figure Crea una ventana axes Crea ejes. line Crear linea text Crear texto rectangle Crear recangulo surface Crear superficie image Crear imagen lighht Crear luz uicontrol Crear interface de usuario GUI uimenu Crear menu uicontextmenu Crear men contextual EJEMPLO: Adicione una poligonal en la figura. x=[0 1 2 3 4 5]; y=[2 6 3 8 3 1]; line(x,y);

Operaciones para manipulacin de grficas. Orden Funcin set Seteo de propiedades de un objeto get Captura de propiedades de un objeto gcf Capturar manipulable de la figura actual gca Capturar manipulable de los ejes actuales gco Captura manipulable del objeto actual gcbo Capturar el manipulable del objeto actual Callback gcbf Capturar el manipulable de la figura callback. reset Resetear propiedades delete Borrar objeto

DISEO Y CONTROL DEL FLUJO DE PROGRAMAS


Estructuras de control Orden Utilidad .if Define un condicional .else Complemento del condicional .elseif Definir accin opuesta. I=1;J=7; if I == J A(I,J) = 2; elseif abs(I-J) == 1 A(I,J) = -1; else A(I,J) = 0; end Finaliza las acciones de las rdenes: IF, FOR, WHILE, SWITCH y TRY Repetir varias veces una o varias instrucciones (n) veces. EJEMPLO: Elaborar un programa para sumar los primeros 500 numeros naturales: s=0; for i=1:500 s=s+i; end Repetrir una instruccin en forma indefinida. EJEMPLO: definir una funcin que liste los numeros primos: function y=primos(x) i=0; s=0; y=[]; while s<x i=i+1; if isprime(i)==1;s=s+1;y=[y i];end end Interrumpe un ciclo inicciado por: WHILE o FOR Pasa el control a la prxima iteracin FOR o WHILE. Seleccin de entre varias opciones planteadas. Opciones plantedas por SWITCH. Seleccin por defecto del la orden SWITCH. function y=diasemana(x) switch x case 1 y='lunes'; case 2 y='martes'; case 3 y='miercoles'; case 4

.end .for

.while

.break .continue .switch .case .otherwise

y='jueves'; case 5 y='viernes'; case 6 y='sabado'; case 7 y='domingo'; otherwise y='no existe'; end Scripts, Funciones y Variables. Script Archivo de secuencia de ordenes global Definicin de una variable global. persistent Definicin de una variable persistente. mfilename Nombre de archivos (m) ejecutables. exist Definir si las variables han sido definidas. isglobal Determina si la variable es global. isvarname Verifica que un nombre sea vlido para variable iskeyword Determina si un nombre es una palabra clave de Matlab namelengthmax Maxima longitud que puede tener una variable en Matlab. Manipulacin de argumentos de una funcin. .nargchk Validar nmero de argumentos de entrada Ejemplo: programa que controla la cantidad de argumentos de entrada: function f = revisar(varargin) error(nargchk(1, 3, nargin)) Validar nmero de argumentos de salida Nmero de argumentos de entrada en una funcin. function y=argumentos(varargin) y=nargin Nmero de argumentos de salida de una funcin. Define una lista variable de argumentos de entrada. Ejemplo: Definir una funcin que permita sumar una cantidad arbitraria de parmetros. function y=suma(varargin) s=0; [m n]=size(varargin); for k=1:n s=s+varargin{k}; end y=s; define una lista variable de argumentos de salida. Nombre de los argumentos de entrada.

nargoutchk nargin

nargout varargin

varargout inputname

Despliegue de Mensajes. Orden Funcin warning Despliegua un mensaje de advertencia. lesterr Mensaje relacionado con el ltimo error. lesterror Mensaje sobre el ltimo error e informacin adicional. lastwarn Mensaje sobre el ltimo mensaje de advertencia. disp Despliegue de un array. display despliega funciones de sobrecarga en un array. display(Hola) fprintf Salida formateada. sprintf Almacena una salida formateada en un string.

Entradas Interactivas. Orden Funcin input Entrada mediante lnea de ordenes. a=input(Hola) keyboard Detiene la ejecucin de un archivo (m) y se utiliza para la depuracin. Este modo de caracteriza porque se antepone la letra (K>>) antes del promp. return Detiene el efecto de (Keyboard). pause Espera a una respuesta. uimenu Crear una interface de menu. uicontrol Crea una interface de control.

Anlisis de Datos
Operaciones Bsicas. Orden Funcin max Valor mas alto max([3,4,8,1,2,89,2,4]) min Mnimo min([3,4,8,1,2,89,2,4]) mean Media mean([3,4,8,1,2,89,2,4]) median Mediana median([3,4,8,1,2,89,2,4]) std Desviacin estandar std([3,4,8,1,2,89,2,4]) var Varianza var([3,4,8,1,2,89,2,4]) sort Ordenar ascendentemente sort([3,4,8,1,2,89,2,4]) sum Suma sum([3,4,8,1,2,89,2,4]) prod Producto prod([3,4,8,1,2,89,2,4]) trapz Integracin mediante trapecios considerado [dx=1] trapz([3,4,8,1,2,89,2,4]) cumsum Suma acumulada cumsum([3,4,8,1,2,89,2,4]) cumprod Prducto acumulado cumprod([3,4,8,1,2,89,2,4]) cumtrapz Integracin trapezoidal acumulada cumtrapz([3,4,8,1,2,89,2,4])

Interpolacin de Datos.
Orden interp1 Funcin Interpolacin unidimensional x=[1 2 3 4 5]; y=[1 5 4 8 2]; interp1(x,y,2.5); Sintaxis: Interp(x,y,xr,metodo) Valores de metodo: 'nearest' nearest neighbor interpolation 'linear' interpolacion lineal 'spline' spline cubico 'pchip' spline cubico preservando valores. 'cubic' lo mismo que 'pchip' 'v5cubic' interpolacin cbica. interp1(x,y,2.6,'linear'); interp1(x,y,2.6,'spline'); Interpolacin unidimensional rpida. Interpolacin mediante la FFT Interpolacin plana Interpolacin tridimensional Interpolacin ndimensional. Mallas de datos y superficies. Spline Cbico. Interpolacin polinomial.

interp1q interpft interp2 interp3 interpn griddata spline ppval

Polinomiales. Orden Funcin roots Raices de un polinomio X3-9*x2+26x-24=0 roots([1 -9 26 -24])= [4 3 2] poly Generar polinomio a partir de sus raices poly([2 3 4]); polyval Evaluar polinomio. f(x)=x2+2x+3, evaluar f(1) polyval([1 2 3],1) polyvalm Evaluar polinomio con argumentos matriciales residue Expancin en fracciones parciales y residuos. Ejemplo expandir enfracciones parciales: 3x 2 + 4 x + 5 x 3 9 x 2 + 26 x 24 Solucin: a=[3 4 5];b=[1 -9 26 -24];[r p k]=residue(a,b); r=[34.5;-44;12.5];p=[4;3;2];k=[] Luego queda: 34.5 44 12.5 3x 2 + 4 x + 5 = + 3 2 x 9 x + 26 x 24 x 4 x 3 x 2

polyfit

polyder conv

deconv

Polinomio de interpolacin x=[1 2 3 4]; y=[4 7 6 3]; polyfit(x,y,4)=polinomio de interpolacin de grado (4). Derivada de un polinomio polyder([1 3 5 -8])=[3 6 5] Convolucin o producto de polinomios f1=[3 4 -1]; 3x 2 + 4 x 1 f2=[3 5 7 7]; 3x 3 + 5 x 2 + 7 x + 7 y=conv(f1,f2); y=[ 9 27 38 44 21 -7]; 9 x 5 + 27 x 4 + 38 x 3 + 44 x 2 + 21x 7 ( 3x 2 + 4 x 1 )( 3x 3 + 5 x 2 + 7 x + 7 )= 9 x 5 + 27 x 4 + 38 x 3 + 44 x 2 + 21x 7 Deconvolucin o divisin de polinomios.

Funciones y Solucin de Ecuaciones diferenciales Ordinarias.


Busqueda de raices. Orden Funcin fminbnd Mnmimo de una funcin para un rango dado. fminbnd('(x-2)*(x-3)',1,9) fminsearch Mnimo multidimensional. fzero Ceros de una ecuacin. fzero('x^2-125',0) fzero('exp(x)+3*sin(x)-12',0) Integracin numrica (Cuadratura). Orden Funcin quad Integracin numrica q=inline('sin(x)-3'); quad(q,0,7)= -20.7539 quad8 Integracin de orden superior dblquad Integral doble

(x
2 4 1 3

+ y 3 dydx

F=inline('x.^3+y.^3'); dblquad(F,1,2,3,4)
Ploteo. Orden ezplot

Funcin

Ploteo de una funcin: ezplot('cos(x)') ezplot('cos(x)', [0, pi]) ezplot('1/y-log(y)+log(-1+y)+x - 1') ezplot('x^2 - y^2 - 1') ezplot('x^2 + y^2 - 1',[-1.25,1.25]); axis equal ezplot('x^3 + y^3 - 5*x*y + 1/5',[-3,3]) ezplot('x^3 + 2*x^2 - 3*x + 5 - y^2') fplot Ploteo de una funcin: subplot(2,2,1), fplot('humps',[0 1]) subplot(2,2,2), fplot('abs(exp(-j*x*(0:9))*ones(10,1))',[0 2*pi]) subplot(2,2,3), fplot('[tan(x),sin(x),cos(x)]',2*pi*[-1 1 -1 1]) subplot(2,2,4), fplot('sin(1 ./ x)', [0.01 0.1],1e-3) inline Definir una funcin: a=inline('x^2+y^2') argnames Argumentos de una funcin: argnames(a)={x; y} char Convierte un objeto INLINE en array de carateres: char(a)=x^2+y^2 vectorize Vectoriza un string de una funcin: A=inline('x^2+y^2'); b=vectorize(A) b=inline(x.^2+y.^2)

Ecuaciones diferenciales ordinarias.


Una ecuacin diferencial ordinaria ODE. ODE son algoritmos Matlab para resolver ecaciones diferenciales ordinarias de las forma: dy = f (t , y ) y (t 0 ) = y 0 dt

Para ejecutar esta orden debe seguir estos pasos: [t,y] = ode45('fname', tspan, y0, opts) donde: fname: es el nombre de la funcin la cual se define as: function dydt = fname(t,y) dydt debe ser un vector con el mismo tamao de y. Vector que define el rango de integracin. ([to tf]) Vector de condiciones iniciales. Estructura opcional variable que permite controlar los detalles de computacin. Variable independiente. Solucin del problema.

tspan: y0: opts: t: y:

Ejemplo: La altura de fluido en un tanque (h) est dada por la siguiente ecuacin diferencial: dh = (t ) h h ( 0) = h 0 dt Encuentre la solucin para 0<t<30. Sujeta a los siguientes parmetros: (t ) = 10 + 4Sin(t ) , = 2 , h0 = 1 1) Defina la funcin: function dhdt = tankfill(t,h) A = 10 + 4*sin(t); H = 2*sqrt(h); % beta*sqrt(h) dhdt = A - H; 2) Defina los valores iniciales y los rangos de integracin. tspan = [0 30]; h0 = 1; [t,h] = ode45('tankfill',tspan,h0); 3) Grafique los resultados. plot(t,h)

Un sistema de ecuaciones diferenciales ordinaias ODES.

Dado el conjunto de ecuaciones diferenciales: dA = k1 A + k 2 B dt dB = k1 A k 2 B k 3 B dt dC = k3 B dt Sujeto a las condiciones iniciales: A(0) = A0 , B (0) = B0 , C (0) = C 0
A A0 k1 y1 + k2 y2 y = B , y (0) = y 0 = B0 , f (t , y ) = k1 y1 (k2 + k3 ) y2 k3 y 2 C C 0 k1 = 5 k 2 = 2 k 3 = 1 A0 = 1 B0 = C 0 = 0

Siga estos pasos: 1) Defina la funcin: function dydt = react(t,y) dydt = zeros(size(y)); k1 = 5; k2 = 2; k3 = 1; A = y(1); B = y(2); C = y(3); dydt(1) = -k1*A + k2*B; dydt(2) = k1*A - (k2+k3)*B; dydt(3) = k3*B; 2) Aplique la rutina de solucin: [t,y] = ode45('react',[0 4],[1 0 0]); 3) Observe la solucin. plot(t,y);

Escritura/Lectura de Archivos.
Apetura y cerrado de archivos. Orden Funcin fopen Abrir archivo: Sintaxis: fopen(nombre archivo.permiso) Tipos de permiso: 'r' Lectura 'w' Escritura (Lo crea de ser necesario) 'a' Adicin (Lo crea de ser necesario) 'r+' Lectura y escritura (No crea) 'w+' Truncar o crear para lectrura y escritura. 'a+' Lectura y adicin (Lo crea de ser necesario) fclose Cerrar fread Leer datos de archivo binario fwrite Escribir datos a archivo binario Entarada/Salida de archivos formateados. Orden Funcin textread Leer datos de archivo formateado. fscanf Leer datos de archivos formateado fprintf Escribir datos formateados a archivo. fgetl Leer lnea de archivo. fgtes Leer linea de longitud controlada Posicionado en el archivo. Orden Funcin ferror Mensaje de error relacionado con apertura/escritura de archivos. feof Control del final de archivo. fseek Setea la posicin en el archivo. Para luego ser leido. Sintaxis: FSEEK(FID, OFFSET, ORIGIN); Valores de OFFSET: > 0 Mover hacia el final de archivo. = 0 No cambiar de posicin. < 0 Mover hacia el inicio de archivo. Valores de ORIGIN: 'bof' or -1 Beginning of file 'cof' or 0 Current position in file 'eof' or 1 End of file frewind Reposiciona al inicio de archivo. Manipulacin de nombres de archivos. Orden matlabroot Directorio raiz de Matlab. filesep Separador de directorios. pathsep Separador de rutas.

Funcin

Ejemplos: Escribir un archivo denominado exp.txt compuesto por la tabla de datos de la funcin:

y = e x + sin( x)
x = 0:.1:10; y = [x; exp(x)+sin(x)]; fid = fopen('exp.txt','w'); fprintf(fid,'%6.2f %12.8f\n',y); fclose(fid); Escribir un archivo que contenga los das de la semana: semana={'lunes','martes','miercoles','jueves','viernes','sabado','domingo'}; [m n]=size(semana); a = fopen('semana.doc','w'); for i=1:n fprintf(a,'%s\n',semana{i}); end fclose(a); Abrir y graficar un archivo denominado: sismo.txt A=fopen(sismo.txt,r); i=0;While 1;i=i+1;m(i)=eval(fgetl(a));end; fclose(a); Lee el archivo hasta que detecta el final de este. a=fopen('sismo.txt','r'); i=0; while not(feof(a)) i=i+1; m(i)=eval(fgetl(a)); end; fclose(a); Leer el contenido de un archivo que contiene informacin literal lnea por lnea. a=fopen('semana.doc','r'); i=0; while not(feof(a)) i=i+1; m{i}=fgetl(a); end; fclose(a);

MANIPULACIN DE SONIDO
Orden wavrecord Funcin Almacena un archivo de voz. Mediante la ayuda de un dispositivo de gravacin (micrfono). Sintaxis: WAVRECORD(N,FS,CH) N= Nmero de muestras a registrar. FS= Frecuencia de almacenamiento. CH=1 o 2 (mono o estereo) voz=wavrecord(3*8000,8000); Registro de 24000 muestras a una frecuencia de 8000 muestras por segundo. Permite reproducir un archivo de sonido almacenado en un vector: Sintaxis: SOUND(Y,FS,BITS) Y: Vector de sonido. Debe contener valores tales que [-1<y<1] FS: Frecuencia de ejcucin. BITS: Bits por muestra. Permite almacenar un vector de datos como un archivo de voz. Sintaxis: WAVWRITE(Y,FS,NBITS,WAVEFILE) Y: Vector de datos FS: frecuencia de ejecucin. NBITS: Nmero de bits por muestra, puede ser: 8, 16, 24 o 32. Si no se especifica se asume un avlor de 16 por defecto. WAVFILE: Nombre del archivo de sonido.

sound

wavwrite

wavplay

wavread

Ejemplo: Almacenar en disco el archivo anterior en un archivo llamado 'voz.wav': wavwrite(voz,8000,'voz.wav') Reproducir archivo de voz. Sintaxis: WAVPLAY(Y,FS) Y=vector que contiene un archivo de voz. FS= Frecuencia de ejecucin a=wavread('sound68.wav'); wavplay(voz,8000); Lee un archivo de voz tipo (wav) y lo almacena en un vector. Sintaxis: WAVREAD(FILE,N) FILE: Archivo. N: Nmero de muestras a leer. Si se omite lee todo el archivo. Ejemplo: Leer un archivo de voz llamado (banda.wav) y reproducir sus primeras 5000 muestras. a=wavread('banda.wav',5000); sound(a);

Ejemplo: Reprodudir la totalidad del archivo de voz (banda.wav) a=wavread('banda.wav'); sound(a); plot Permite visualizar un archivo de sonido almacenado en un vector. rot90 Se puede utilizar para invertir un archivo de sonido. Ejemplo: Reproducir en forma inversa el archivo de sonido alamacenado en el vector (a). sound(rot90(rot90(a))) Diezmado de Mediante indexacin de matrices es posible eliminar las muestras de un una seal. vector. Ejemplo: b=a(1:2:size(a)) c=a(1:4:size(a)) Luego del disezmado podmos oir cada sonido. sound(a); sound(c); Ejemplo: Gravar un mensaje de voz y almacenarlo como un archivo sterereofnico con una duracin de 10 segundos. Luego almacenarlo en un archivo denominado (mensaje.wav). a=wavrecord(10*8000,8000,2); wavwrite(a,'mensaje.wav'); Generar un archivo de un solo tono y luego reproducirlo durante 10 segundos: t=0:0.01:1000; a=sin(1000*t); sound(a,10000);

IMAGENES
Matlab representa a las imgenes como un conjunto ordenado de valores reales en una matriz de datos datos de color o intensidad. As se define un pxel (picture element) como un elemento de una imagen. Asumiendo que la imagen se encuentra almacenda en una matriz I, para acceder a la informacin de cada pixel , I(m,n) nos da el valor de intensidad del pxel de la fila (m) y columna (n) de la matriz I. Los archivos que contienen imgenes soportan las siguientes extensiones: Sin compresin BMP Compresin sin prdida de informacin PCX TIFF GIF PNG Compresin con prdida de informacin JPG
Formatos de imgenes IMGENES BINARIAS SOLO CONTIENEN UNOS Y CEROS.

IMGENES INDEXADAS LA IMAGEN SE DEFINE MEDIANTE DOS MATRICES: MATRIZ DE NDICES(MXN) MATRIZ DE MAPA DE COLORES (COL X 3)

Imgenes de Intensidad Son imgenes en escala de grises donde el valor de cada pixel equivale al nivel de luminosidad. Es lomismo que una imagen indexada con paleta de colores continua

Imgenes tipo RGB Cada punto tiene definido el color mediante tres valores RGB los cuales se almacenan en una matriz con tres niveles

Formatos de imgenes Imgenes Binarias: Es un tipo especial de imagen de intensidad, conteniendo slo dos posibles valores, 0 (negro) y 1 (blanco). Sintaxis: BW{0, 1} unit8 logicaldouble logical

Imgenes Indexadas: Requieren dos matrices: un mapa de colores y la matriz de la imagen. El mapa de colores es un conjunto ordenado de valores que representan a los colores de la imagen. Cada pxel de la imagen contiene un ndice al mapa de colores. El mapa de colores es un vector de n3, para una imagen conteniendo n colores, donde cada fila tiene dimensiones 13, siendo el primer elemento el color rojo (R), el segundo el color verde (G) y el tercero el color azul (B), que juntos representan al color en cuestin. Sintaxis: mapxdouble[1,m], uint8[0..m-1], uint16[0..m-1]mapdouble[0,1] Ejemplo: Si un pxel en la matriz imagen tiene el valor 18, significa que el color correspondiente a este pxel es el de la fila 18 del mapa de colores. Imgenes de Intensidad Requiere una sola matriz. Contiene valores entre 0.0 y 1.0. Representa imgenes en escala de grises, donde el 0.0 corresponde al negro y el 1.0 al blanco. Sintaxis: IIdouble[0,1], uint8[0..255], uint16[0..65535] Imgenes tipo RGB: Utiliza tres matrices, cada una conteniendo la componente roja (R), verde (G) y azul (B) respectivamente, como si fueran tres imgenes de intensidad independientes. El color para un determinado pxel en la posicin (x,y) ser: [R(x,y) G(x,y) B(x,y)]. Sintaxis: imagesRGB(mXnX3) RGBdouble[0,1], uint8[0..255], uint16[0..65535]

FUNCIONES PARA TRANSFORMACIN DE FORMATOS FORMATO INICIAL FORMATO FINAL UTILIZAR Imagen indexada Imagen binaria im2bw Imagen indexada Imagen de intensidad ind2gray Imagen indexada Imagen RGB ind2rgb Imagen de intensidad Imagen binaria im2bw Imagen de intensidad Imagen indexada gray2ind Imagen de intensidad Imagen RGB Se usa la matriz de intensidad original para las tres componentes RGB Imagen RGB Imagen indexada rgb2ind Imagen RGB Imagen de intensidad rgb2gray Imagen RGB Imagen binaria im2bw Imagen binaria Imagen indexada gray2ind Matriz general Imagen de intensidad mat2gray IMPORTACIN Y EXPORTACIN DE IMGENES Orden Funcin imread Importacin de un archivo de imagen. Sintaxis: A = IMREAD(FILENAME,FMT) A: Vector que almacena la imagen. FILENAME: Nombre del archivo. FMT: Formato dela rchivo.

Ejemplo: Almacenar el archivo denominado (foto.jpg) en la variable (a) y visualizarlo. a=imread('foto','jpg'); image(a); Otra forma de obtener el mismo rsultado: a=imread('foto.jpg'); image(a); Genera un archivo de imagen a partir de una matriz. Sintaxis: IMWRITE(A,FILENAME,FMT) A=Matriz de imagen. FILENAME: Archivo a generar. FMP: Formato del archivo de imagen a crear. Ejemplo: Almacenar el vector como un archivo JPG llamado (foto3). imwrite(a,'foto3','JPG') Mediante el idexado es posible extraer segmentos de una matriz grfica. Ejemplo: Extraer una fraccin de la foto y almacenarla en un archivo. b=a(144:20,150:300,:); imwrite(b,'fotoparcial','jpg');image(b);

imwrite

Indexado.

OREDENES PARA MANIPULACIN DE IMGENES Orden Indexado Funcin Mediante el indexado tambien es posible separar cada color de ina imagen.

Suma

Ejemplo: R=a(:,:,1);G=a(:,:,2);B=a(:,:,3); Image(R); Image(G); Image(B); Nota: observe cada situacin por separado. Es posible alterar el nivel de intensidad de una imagen con la simple adicin o substraccin de un valor entero: Ejemplo: a=imread('foto.jpg'); image(a+100); image(a-100); Nota: observe los resultados. Tambien se puede emplear para invertir los colores de la imagen Image(256-a); Se puede emplear para rotar una matriz que contiene una imagen b=rot90(a(:,:,1)); b(:,:,2)=rot90(a(:,:,2)); b(:,:,3)=rot90(a(:,:,3)); image(b); Rota una imagen un angulo especificado en grados. Sintaxis: B = IMROTATE(A,ANGLE,METHOD) A: matriz de imagen ANGLE: Angulo en grados en sentido antohorario. METHOD: 'nearest' Interpolacin mas prxima. 'bilinear' Interpolacin bilineal. 'bicubic' Interpolacin bicbica. Ejemplo: b=imrotate(a,10,'nearest'); c=imrotate(a,10,'bicubic'); image(b); image(c);

Rot90

imrotate

Orden imresize

Funcin

Escalado de una imagen. Sintaxis: B = IMRESIZE(A,M,METHOD) A=Matriz de imagen. M=Escala. METHOD: 'nearest' Interpolacin mas prxima. 'bilinear' Interpolacin bilineal. 'bicubic' Interpolacin bicbica. recorte rectangular en una imagen mediante el ratn, o bien por teclado indicando las coordenadas del rectngulo y sus dimensiones. Sintaxis: B=IMCROP. Almacena. los valores de los pxeles seleccionados con el ratn o por teclado. Sintaxis: B=IMPIXEL

imcrop

impixel

PROBLEMA: Cargar una imagen y transofrmarla a imagen de tonos de grises.

INTERFACE GRFICA DE USUARIO (GUI)


Todo programa de matlab generalmente est acompaado de una interfaz grfica de usuario (GUI), que corresponde a la caja grfica que permite interactuar con el usuario de diferentes modos: (haciendo click sobre un botn o realizando alguna accin). En este captulo mediante el conocimiento de las ordenes necesarias ser posible disear una GUI a gusto del usuario como la que se mestra en seguida:

Una de las primeras cosas que se debe conocer a la hora de disear una GUI es la gerarqua de los Objetos grficos de Matlab.

De ecuerdo con la anterior figura, los objetos de nivel superior tienen dominio sobre los objetos de nivel inferior los cuales se denominan objetos hijos. Los objetos hijos residen dentro de los objetos padre sin los cuales no podran existir. Para disear una interfaz grfica de usuario GUI, siga estos pasos: Crear el objeto padre (Figure). Mediante la orden (Variable=FIGURE) se define una figura que contendr todos los elementos de la interface y se almacena en (Variable). Observe el estado inicial de las propiedades del objeto padre (Figure), mediante la orden get(Variable). Modifique las propiedades del objeto padre (Figure) mediante la orden (set). Mediante la sintaxis: set(Variable,'propiedad','nuevo valor'). El objetivo principal de esta etapa es definir el tamao, el color y la posicin del objeto padre(Figure) quien contendr los controles adicionales de la GUI que se denominarn objetos hijos. Crear los objetos hijo. mediante la orden (UICONTROL). Pueden ser de diferentes tipos: texto, cajas de edicin, botones, barras deslizadoras, botones de seleccin, imgenes, marcos, ejes, etc.

OBJETO PADRE (Figure). Es el objeto base sobre el cual reposarn todos los objetos hijos. Como Crearlo: NOMBRE PADRE=figure Como Observar sus propiedades: get(NOMBRE PADRE). Como modificar sus propiedades: set(NOMBRE PADRE,PROPIEDAD,VALOR) Propiedades principales: PROPIEDAD Position Position = [X Y W H] Name NOMBRE Visible Visible = on, off Color Color = [r g b] Resize On,off

VALOR

TIPO DE OBJETOS HIJO Los objetos hijo mas comunes son: Push Button, Slider, Radio Button, Check Box, Edit Text, Pop.up Menu, Listbox, Axes. Aunque existe otra gran cantidad de objetos dispnibles mediante una gerarqua de objetos Activex, aqu solo trabajaremos con los mas comunes. OBJETO Push Button FIGURA FUNCIN Ejecutar alguna accin cuande se hace click sobre el. Proporcionar un valor numrico definido en un rango determinado comprendido por un (Valor mnimo) y un (Valor mximo) mientras el usuario selecciona al deslizar la barra central. Funciona en conjunto de varios (Radio Button) y permite la seleccin de solo uno a la vez. Funciona en conjunto de varios (Check Box) y permite la seleccin mltiple de manera simultanea. Permite ingresar texto modificable.

Slider

Radio Button Check Box Edit Text Pop-up Menu Listbox Axes

Genera un men desplegable con posibilidad de seleccin. La caja de lista muestra un listado con posibilidad de seleccin. Los ejes soportan imgenes y grficas.

CREACIN DE OBJETOS HIJO Para la creacin de objetos hijos es necesario seguir una sintaxis para cada uno de ellos pero existe algunas similitudes que todos los objetos hijos comparten como: Todos los objetos hijo de un mismo padre (Figure) pertenecen al mismo padre. Todos los objetos hijo disponen de una posicin dentro del objeto padre. Todos los objetos hijo se crean mediante la orden (uicontrol). El tipo del objeto hijo se define mediante la orden (Style). La acciones que ejecutar el objeto hijo se asignan mediante la orden (CallBack). Todos los objetos hijos se crean siguiendo la misma estructura de sintaxis la cual se explica enseguida. SINTAXIS PARA CREAR UN OBJETO HIJO TIPO UICONTROL.

NONBRE HIJO=uicontrol(NOMBRE PADRE, 'Style','ESTILO',... 'Position',[X Y W H],... 'CallBack','PROGRAMA'... 'PROPIEDAD1',VALOR1,... 'PROPIEDAD2',VALOR2,... 'PROPIEDADN',VALORN,... ); Donde: NOMBRE HIJO: Es el nombre que adquirir el objeto a crear. NOMBRE PADRE: Es el nombre del padre al cual partenecer el objeto hijo. ESTILO Es el tipo de objeto que se crear y puede ser: 'text', Caja de texto esttico. 'edit' Caja de etxto editable. 'push' Botn. 'frame' Marco. 'slider' Barra deslizante. 'RadioButton' Bot de seleccin unica tipo radio. 'Check' Botn de seleccin multiple. 'ListBox' Caja de lista. 'Popup' Lista desplegable. X Posicin horizontal sobre el Objeto Padre. Y Posicin vertical sobre el Objeto Padre.

W Ancho del Objeto Hijo. H Alto del Objeto Hijo. PROGRAMA Es el nombre de la rutina que se ejecutar cada vez que el usuario haga click sobre el Objeto Hijo.

PROPIEDADES PRINCIPALES DE TEXTO ESTTICO ('text') PROPIEDAD VALOR String Cualquier cadena de cracateres Position [X Y W H] Callback Callback =NOMBRE PROGRAMA FontName Cualquier tipo que soporte Office. Arial, etc. FontSize Cualquier valor que soporte segn FontName Visible on, off Style 'text' Ejemplo: H1=uicontrol(padre,... 'Style','text',... 'String','X=',... 'Position',[0 50 50 20],... 'CallBack',''... ); PROPIEDADES PRINCIPALES DE TEXTO DE EDICCIN ('edit') PROPIEDAD VALOR Position [X Y W H] String Cualquier texto FontName Cualquier tipo soportado por office. FontSize Cualquier tamao soportado por FontName Visible on, off BackgroundColor [r g b] Style 'edit' Ejemplo: B1=uicontrol(padre,... 'Style','edit',... 'BackgroundColor','white',... 'FontSize',8,'FontName','Arial',... 'String','',... 'Position',[40 100 50 20],... 'CallBack',''... );

PROPIEDADES PRINCIPALES DE BOTON ('push') PROPIEDAD VALOR Style 'push' Position [X Y W H] String Cualquier texto BackgroundColor [r g b] FontName FontSize Visible on,off CallBack Ejemplo: Bot=uicontrol(fig,... 'Style','push',... 'BackgroundColor','white',... 'FontSize',12,'FontName','Arial',... 'String','X+Y',... 'Position',[40 150 50 20],... 'CallBack','suma'... );

PROPIEDADES PRINCIPALES DE SLIDER('slider') PROPIEDAD VALOR Style 'slider' Position [X Y W H] Min Max Value CallBack Ejemplo: Sld=uicontrol(fig,... 'Style','slider',... 'Position',[150 50 15 200],... 'Min',1,'Max',100,'Value',1,... 'CallBack','ajustar'... );

PROPIEDADES PRINCIPALES DE BOTON DE RADIO('RadioButton') PROPIEDAD VALOR Style RadioButton Position [X Y W H] Value 1,0 String

Visible Callback

on,off

Ejemplo: Rad1=uicontrol(a,... 'Style','RadioButton',... 'Position',[150 50 150 20],... 'Value',1,... 'String','Opcin1',... 'CallBack',''... ); PROPIEDADES PRINCIPALES MULTIPLE('Check') PROPIEDAD Style Check String Position [X Y W H] FontName FontSize Value 1,0 Callback Ejemplo: Chk1=uicontrol(a,... 'Style','Check',... 'Position',[150 50 150 20],... 'Value',1,... 'String','Opcin1',... 'CallBack',''... ); DE BOTON DE SELECCIN

VALOR

PROPIEDADES PRINCIPALES DE CAJA LISTA ('ListBox') PROPIEDAD VALOR Style ListBox Position [X Y W H] String {dato1 dato2 dato3 } CallBack Visible Ejemplo: LBox=uicontrol(a,... 'Style','ListBox',... 'Position',[150 250 150 50],... 'String',{'enero','febreo','marzo','abril','mayo','junio','julio','agosto'},... 'CallBack',''... ); PROPIEDADES PRINCIPALES DE LISTA DESPLEGABLE ('Popup') PROPIEDAD VALOR Style Popup Position [X Y W H] FontName FontSize Value Visible Ejemplo: LBox=uicontrol(a,... 'Style','Popup',... 'Position',[50 250 150 50],... 'String',{'enero','febreo','marzo','abril','mayo','junio','julio','agosto'},... 'CallBack',''... );

ORDENES DE CONTROL (GET, SET) Mediante estas ordenes es posible controlar cualquier GUI en la siguiente forma: GET: Permite visualizar el estado de la propiedades de un objeto. SET: Permite modificar el valor de la propiedad de un objeto grfico.

UN EJEMPLO DE (GUI)
Se dese una interface con la siguiente apariencia:

Se espere haga las siguientes acciones: Cuando se haga click sobre el boton (X+Y), se ejecute las suma de dos valores indicados. Cuando se haga click sobre la barra deslizante, se modifique el tamao de la figura en rojo. Cuando se haga click sobre el botn (OCU), se oculte la barra deslizante. Cuando se haga click sobre el botn (VIS), se muestre la barra deslizante.
CONSTRUCCION DE LA GUI En el editor de Matlab, digite las siguiente lineas y luego guardelas con el nombre GUI01:

fig=gcf;clf; set(fig,'Position',[20 100 200 300]) set(fig,'Resize','off') Txt1=uicontrol(fig,... 'Style','text',... 'String','X=',... 'Position',[0 50 50 20],... 'CallBack',''... ); Txt2=uicontrol(fig,... 'Style','text',... 'String','Y=',... 'Position',[0 75 50 20],... 'CallBack',''... );

Txt3=uicontrol(fig,... 'Style','text',... 'String','X+Y=',... 'Position',[0 100 50 20],... 'CallBack',''... ); Box1=uicontrol(fig,... 'Style','edit',... 'BackgroundColor','white',... 'FontSize',8,'FontName','Arial',... 'String','',... 'Position',[40 50 50 20],... 'CallBack',''... ); Box2=uicontrol(fig,... 'Style','edit',... 'BackgroundColor','white',... 'FontSize',8,'FontName','Arial',... 'String','',... 'Position',[40 75 50 20],... 'CallBack',''... ); Box3=uicontrol(fig,... 'Style','edit',... 'BackgroundColor','white',... 'FontSize',8,'FontName','Arial',... 'String','',... 'Position',[40 100 50 20],... 'CallBack',''... ); Bot=uicontrol(fig,... 'Style','push',... 'BackgroundColor','white',... 'FontSize',12,'FontName','Arial',... 'String','X+Y',... 'Position',[40 150 50 20],... 'CallBack','suma'... ); Bot=uicontrol(fig,... 'Style','frame',... 'BackgroundColor','Red',... 'FontSize',12,'FontName','Arial',... 'Position',[100 50 15 200],... 'CallBack',''...

); Sld=uicontrol(fig,... 'Style','slider',... 'Position',[150 50 15 200],... 'Min',1,'Max',100,'Value',1,... 'CallBack','ajustar'... ); Bot2=uicontrol(fig,... 'Style','push',... 'BackgroundColor','white',... 'FontSize',12,'FontName','Arial',... 'String','Vis',... 'Position',[40 200 50 20],... 'CallBack','visual'... ); Bot3=uicontrol(fig,... 'Style','push',... 'BackgroundColor','white',... 'FontSize',12,'FontName','Arial',... 'String','Ocu',... 'Position',[40 230 50 20],... 'CallBack','ocultar'... ); El siguiente paso es elaborar los programas que sern invocados mediante CallBack que para este caso son: 'suma','ajustar','visual','ocultar' los cuales cumplen con las siguientes funciones: 'suma': 'ajustar': 'visual': 'ocultar': Suma los valores y muestra la suma. Modifica el tamao de la figyra en rojo mediante la barra deslizante. Muestra la barra deslizante. Oculta la barra deslizante.

PROGRAMA DE SUMA Digite las siguiente ordenen y guardelas co el nombre (suma).

a=eval(get(Box1,'String')); b=eval(get(Box2,'String')); set(Box3,'String',a+b); clear a b;


PROGRAMA DE AJUSTE Digite las siguientes ordenes y guardelas con el nombre (ajustar).

a=round(get(Sld,'Value')); set(Bot,'Position',[100 50 15 a*2]); clear a;

PROGRAMA DE VISUALIZACIN Digite las siguientes ordenes y guardelas con el nombre (visual).

set(Sld,'Visible','on');
PROGRAMA DE VISUALIZACIN Digite las siguientes ordenes y guardelas con el nombre (ocultar).

set(Sld,'Visible','off');

También podría gustarte