Вы находитесь на странице: 1из 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs.

Bsicas

MATLAB: Programa
I PARTE 1. Introduccin a Matlab Concepto y utilidad. Caractersticas. Versiones 2. Entorno de trabajo. 3. Aplicacin 3.1. Matemticas simples. Operadores 3.2. Variables. Variables especiales 3.3. Grabando y Recuperando datos Formato de nmeros. Archivos M (Script). Programas Administracin de Archivos. Matlab en el Arranque. 3.4. Ayuda en Lnea 3.5. Funciones Funciones Matemticas Funciones externas. Reglas y Propiedades 3.6. Operaciones relacionales y lgicas Operadores relacionales Operadores lgicos Funciones relacionales y lgicas 3.7. Nmeros Complejos 3.8. Manejo de Arreglos

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

3.9. Arreglos Arreglos simples. Construccin de arreglos Direccionamiento de arreglos Operaciones matemticas con arreglos Manipulacin de arrreglos Bsqueda de indices Tamao de los arreglos Funciones para la manipulacin de arreglos. 3.10. Matrices. Operaciones y Funciones con matrices Sistemas de ecuaciones lineales Matrices especiales 3.11. Clculo Simblico: Introduccin, objetos y expresiones simblicas. Ejemplos de clculo simblico. Transformacin de Laplace e inversa. Lmites. Series de Taylor y Mac Laurin. 3.12. Polinomios. Operaciones con polinomios. 3.13. Programacin Sentencias de Control de Flujo: input, if - else - end, while - end, for - end, continue, break, switch end.

ne

tri

al

ve r

si on

Pgina 1 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas 3.14. Grficos en Matlab: 3.14.1. Graficos en 2D La funcin plot. Estilos de lnea y colores. Grilla y etiquetas. El comando legend. Modificando los ejes de los grficos. Subgrficos. Figuras mltiples. Refresco de la pantalla. El comando zoom. La funcin ginput. Otras funciones bsicas. Funciones especiales. 3.14.2 Grficos en 3D La funcin plot3 Funciones escalares de dos variables Interpolacin de datos irregulares o dispersos La funcin mesh Grficos de superficie. Grficos de contornos Grficos en 2D de conjuntos de datos en 3D Otras funciones para grficos en 3D II PARTE 3.15. Simulink: Introduccin. Concepto y utilidad. Utilizacin de Simulink Libreras Simulacin en SIMULINK. Demo Aplicacin. Construccin de un modelo sencillo. Solucin Simulink de una ecuacin diferencial. Simulacin Dinmica.

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

ne

tri

al

ve r

si on

Pgina 2 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas 1. INTRODUCCIN A MATLAB El presente documento presenta una introduccin a Matlab dirigida a usuarios que no han trabajado nunca con esta herramienta. Las principales caractersticas de Matlab as como la aplicacin bsica a la ingeniera son explicadas. El documento trata de introducir al usuario en los distintos temas explicados sin profundizar en ellos, mostrando en la mayora de los casos ejemplos prcticos con cdigo y exportacin de grficos de salida, por lo que se recomienda al lector seguir el documento frente a una PC con Matlab para poder seguir los temas expuestos. Se cubrirn todos los temas que son de uso general y las funciones estndar de MATLAB, es decir, que ninguna de las herramientas (Toolbox) o mdulos especiales que se pueden usar con MATLAB sern vistas. Qu es MATLAB? MATLAB es un software que ofrece una plataforma poderosa de clculo que incluye: escalares, vectores/matrices, anlisis numrico, procesamiento de graficas, estadstica, simulacin de sistemas y desarrollo de aplicaciones entre otras aplicaciones. Adems de ser un sistema interactivo que integra la capacidad de clculo con la visualizacin de los resultados en un entorno grfico amigable, permite la programacin con un lenguaje propio, sencillo y totalmente abierto; es decir que el usuario puede crear sus propias funciones o adaptar las que contiene MATLAB segn sus necesidades. MATLAB tiene disponible una larga lista de soluciones o herramientas inteligentes para aplicaciones especficas, son las llamadas Toolboxes (cajas de herramientas), que no son otra cosa que bibliotecas de funciones escritas en el lenguaje de MATLAB, que permiten crear, simular y desarrollar soluciones a problemas de distintas reas como ser: Proceso de seales, Sistemas de Control, Optimizacin, Redes Neuronales, Lgica Difusa, Matemtica Simblica, etc.

Actualmente Matlab se encuentra en la versin R2006a (Matlab 7.2), la cual se encuentra disponible para plataforma Windows, Linux/Unix y Macintosh. Para saber que versin de Matlab dispone una forma de solicitar a la versin es ejecutar en la consola de comando ver Junto con su orientacin matricial, MATLAB tiene como ya dijimos anteriormente, caractersticas de programacin similares a lenguajes como C o Pascal. Finalmente MATLAB ofrece herramientas GUI (Graphical User Interface) que permiten usar a MATLAB como una herramienta de desarrollo de aplicaciones. Esta combinacin de estructuras de datos matriciales, caractersticas de programacin y herramientas GUI hace de MATLAB una herramienta poderosa para la resolucin de problemas en ingeniera, ciencia, computacin y matemticas.

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

Caractersticas bsicas de Matlab

ne

Las matrices son el corazn de MATLAB. Adems de las operaciones algebraicas con matrices comunes MATLAB ofrece operaciones con arreglos que permiten manipular conjuntos de datos en una amplia variedad de maneras muy rpidamente.

tri

al

El nombre de MATLAB es la contraccin de MATrix LABoratory (LABoratorio de MATrices).

ve r

MATLAB es un medio computacional tcnico, con un gran desempeo para el clculo numrico computacional y de visualizacin.

si on

Pgina 3 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas 2. ENTORNO DE TRABAJO El entorno operativo de Matlab se compone de una serie de ventanas que presentamos a continuacin. Aunque el reparto de estas ventanas en la pantalla puede cambiarse, generalmente aparecen en la misma posicin.

Las ventanas que forman parte del entorno de trabajo de Matlab son: 1. Command Window: la ventana de Comandos es el lugar por donde interactuamos con MATLAB, se utiliza para introducir rdenes directamente por el usuario (seguidas de enter). El prompt (>>) se muestra en la ventana de comandos y cuando esta ventana esta activa el cursor debe aparecer a la derecha del prompt. El cursor y el prompt de MATLAB significan que MATLAB esta esperando para realizar alguna operacin matemtica. Los resultados de las rdenes introducidas se muestran en esta misma pantalla. Cuando MATLAB nos de una respuesta, lo har precedida de las letras "ans =" (abreviatura de answer-> respuesta) es decir es la variable por defecto si es que no se asigno una variable de salida en concreto.

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

ne

tri

al

ve r

si on

Pgina 4 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas 2. Command history: las rdenes introducidas en la ventana command window quedan grabadas en esta ventana, de forma que, haciendo doble click sobre ellas las podemos volver a ejecutar.

3. Current directory: las operaciones de Matlab utilizan el directorio seleccionado en current directory (a travs del botn para explorar) como punto de referencia. Por ejemplo, si guardamos una serie de variables con el comando save, se guardan en el directorio en el que estemos trabajando. Lo mismo ocurre cuando cargamos datos con el comando load: el ordenador busca los datos en el fichero en el que estemos trabajando.

pd

4. Workspace (El espacio de trabajo de MATLAB): Mientras se trabaja en la ventana de Comandos, MATLAB guarda los comandos que se ingresan y las variables que se crean en lo que se llama el Espacio de Trabajo de MATLAB o Workspace, y pueden chequearse nuevamente en cualquier momento => es un rea de memoria accesible desde la lnea de comandos. Esta ventana contiene las variables (escalares, vectores, matrices,...) creadas en la sesin de Matlab. La ventana workspace nos proporciona informacin sobre el nombre, dimensiones, tamao y tipo de variable.

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

ne

tri

al

ve r

si on

Pgina 5 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas 3. APLICACION 3.1. MATEMTICAS SIMPLES De igual forma que una calculadora MATLAB realiza operaciones bsicas, realizar los siguientes ejemplos: 3 + 9 + 78 = 90 3 x 9 + 8 x 10 = 107 En MATLAB esta operacin se puede resolver de varias maneras, por ejemplo: 3+9+78 3*9+8*10 ans = ans =

90 107 Observe que a MATLAB no le importan los espacios entre los signos aritmticos en la mayor parte de la operacin y que la multiplicacin tiene precedencia sobre la suma como es lgico. Adems, MATLAB llama al resultado ans (answer) para todos los clculos. OPERADORES MATEMATICOS Adems de la adicin y la multiplicacin MATLAB ofrece las siguientes operaciones aritmticas: Operacin Smbolo Ejemplo adicin sustraccin multiplicacin divisin b Potencia ( a )

si on
*

+ /\ ^

5+3 23-12

2.8*0.67 56/8=8\56 (#) 5 ^ 2 = 25

fM ac hi

El orden de las operaciones obedece a las reglas usuales de precedencia. ----> Se evalan de izquierda a derecha con la potenciacin en la precedencia ms alta, ----->, seguida de la multiplicacin y la divisin de igual precedencia y -----> por ltimo la suma y la resta de igual precedencia. Nota: El uso de parntesis puede alterar este orden, en cuyo caso la evaluacin se inicia desde el parntesis ms interno hacia fuera. Dentro de las de igual precedencia se evala de Izq. A Der. Por ejemplo: >> 5/2*4 ans =

ne

pd

Para que cambiar la prioridad: >> 5/(2*4) ans = 0.6250 >>

3.2. VARIABLES Como alternativa se puede resolver el problema almacenando los valores en variables de MATLAB. Utilizacin de variables: - Para crear una variable en Matlab, simplemente se ha de introducir, en la ventana command window, el nombre de la variable y su valor => para asignarle el valor a una variable se hace: variable = valor (o expresin)

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

tri
10 >>

al

(#) Nota: Es importante resaltar que la divisin en MATLAB puede hacerse en dos sentidos, dependiendo de hacia que lado est inclinada la barra (se realiza la divisin del nmero que se encuentre "encima" de la barra entre el que est "debajo": "encima / debajo", "debajo \ encima").

ve r

Pgina 6 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas - Para conocer el valor de una variable en particular de una lista, basta con teclear su nombre. - Para los caso en que el valor de una variable es una cadena de caracteres, se tiene que poner la misma entre apostrofes. Por ejemplo: >> A='UTN' A= UTN >> - Para la asignacin de nombre a una variable existen determinadas reglas: El nombre debe ser de una sola palabra sin espacios vacos, si son ms palabras se los debe unir con un guin. Los nombres son sensitivos a maysculas y minsculas o sea que: Items, tems, itEms e ITEMS son diferentes variables para MATLAB. Por ej. "costo_final" en lugar de "costo final" En las versiones antiguas el nombre de una variable no puede estar compuesto por ms de 19 caracteres, si es as los restantes caracteres son ignorados. Los nombres deben iniciarse con una letra seguida de varias letras, dgitos o guiones. Los signos de puntuacin no son permitidos porque tienen un significado especial para MATLAB. Puntos a tener en cuenta a la hora de utilizar las ventanas: - MATLAB no tiene en cuenta los espacios en blanco a la hora de operar. - Las operaciones se evalan de izquierda a derecha, con la operacin de potencia teniendo el orden de preferencia ms alto, seguido por la multiplicacin y la divisin (ambas con igual preferencia), y seguidas por ltimo por la suma y la resta (estas dos tambin con igual preferencia). Se pueden emplear parntesis para alterar la preferencia en las operaciones, en cuyo caso la evaluacin se inicia dentro del parntesis ms interno y procede hacia fuera. - Reutilizacin de comandos: Para llamar o ver los comandos previamente ingresados a MATLAB se usan las teclas de manejo del cursor. La tecla - retorna el ltimo comando ingresado. Si se sigue oprimiendo la tecla se pueden ver todos los comandos segn el orden en que fueron ingresados hacia atrs; la tecla los recorre hacia adelante. Adems, si se ingresan los primeros caracteres de un comando conocido previamente ingresado en el prompt y luego se oprime la tecla -, inmediatamente se muestra el ltimo comando ingresado con esos caracteres iniciales. Las teclas , se pueden usar en cualquier momento para mover el cursor a travs de los comandos y as editarlos si se quiere. - Comentarios: cualquier texto que aparezca tras el signo % es interpretado por Matlab como un comentario y por lo tanto no se ejecuta. - Comandos tiles: clc: limpia la pantalla ventana de comandos (command window) clear: borra todas las variables que se encuentren en el workspace, es un borrado de la memoria, aunque no afecta a lo que vemos en pantalla. Tambin se puede borrar una variable especifica por Ej. clear A clf Despeja la ventana de grficos, borrando la figura actual. Ctrl-C: Es posible interrumpir cualquier operacin de MATLAB presionando Ctrl-C (tecla Control y letra C simultneamente), por ejemplo para salir de un bucle infinito. exit: Si se desea salir del programa, basta teclear los comandos quit o exit, o bien elegir Exit MATLAB en el men File (tambin se puede utilizar el Alt+F4 de toda la vida). Iskeyword: lista los nombres reservados por Matlab. Algunos caracteres y rdenes especiales en MATLAB son: ; El punto y coma al final de la lnea le dice a MATLAB que evale la lnea, pero que no visualice la repuesta en la pantalla, lo que es muy til para las salidas con mucha informacin. (Ejemplo a) , El smbolo de coma nos permite escribir varias sentencias en una sola lnea, visualizando el resultado de todas ellas. (Ver ejemplo b) ... Los puntos suspensivos le dicen a MATLAB que la sentencia contina en la lnea siguiente. (Ver ejemplo c) % Todo texto despus del signo porciento (%) es tomado como comentario. Esta caracterstica es til para documentar cada lnea. Ejemplo d. Ejemplo a: fs=1000 fs = f=10 f= T=1/fs;

pd

1000 10 Acabamos de crear tres variables en MATLAB: fs, f y T.(fs=frecuencia sampling, f=frecuencia y T=periodo) Obsrvese que despus de ingresar cada lnea, MATLAB mostr los resultados excepto en el caso de T. El punto y coma al final de la lnea T=1/fs; le dice a MATLAB que evale la lnea sin mostrar
Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 7 de 27

fM ac hi

ne

tri

al

ve r

si on

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas el resultado. Esto nos muestra que podemos crear otra variable a partir de las anteriores, veamos la sigte variable: valor=sin(2*pi*f*T) valor = 0.0628 Ejemplo b: A=4, B=6 A= 4 B= 6 Ejemplo c: D=A*2+B*1+... C*2 D= 18 Ejemplo d: fs=4 %Frecuencia de sampling(muestreo) Variables Especiales Adems de estas reglas de denominacin, MATLAB tiene algunas variables especiales definidas por defecto. Estas variables especiales tambin pueden redefinirse, pero cuando volvamos a arrancar MATLAB se reestablecen los valores iniciales. Algunas de ellas son: Variables especiales ans pi eps flops inf NaN =>Indeterminacin p.ej. 0/0 i,j nargin nargout realmin realmax Valor

Algunas consideraciones sobre las variables: Mientras usted crea variables en MATLAB habr instancias en las que desear redefinir los valores de una o ms de ellas. Por ejemplo si reutilizamos ejemplos anteriores: fs fs = 1000 T=1/fs; f f= 10 T T= 1.0000e-003 valor valor = 0.0628 Modificamos la variable fs. fs=2000 fs = 2006 T T= 1.0000e-003
Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 8 de 27

pd

fM ac hi

ne

tri

El nombre por defecto para los resultados La relacin entre la circunferencia y el dimetro de un circulo El nmero ms pequeo tal que cuando se le suma un 1 , crea un nmero en coma flotante mayor que uno. Nmero de operaciones en punto flotante Representa infinito.p.ej. 1/0 Magnitud no numrica (Not a Number), por ejemplo, 0/0 i=j=-1 => sqrt (-1) Nmero de argumentos de entrada usados en una funcin Nmero de argumentos de salida usados un una funcin Nmero real positivo ms pequeo usable Nmero real positivo ms grande usable

al

ve r

si on

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas Usando el ejemplo anterior vemos que al cambiar el valor de fs de 1000 a 2000 el valor de la variable T no vari. MATLAB a diferencia de una hoja de clculo no recalcula el valor de T basado en un nuevo valor de fs. Cuando MATLAB realiza un clculo lo hace en base a los valores que tiene en el momento en el que el comando es ejecutado. En el ejemplo, si se quiere actualizar el nuevo valor de T y valor es necesario ejecutar nuevamente los comandos correspondientes. Es decir, volver a hacer la suma y la divisin. NOTA: Las variables especiales pueden ser redefinidas como cualquier otra variable, para volver a los valores por defectos ejecute el comando clear (que mostrara mas adelante) o reinicie MATLAB. Listar Variables Para ver el contenido de ese espacio de memoria o buscar el nombre de una variable podemos usar dos comandos: who y whos. La diferencia entre ellos es: who muestra una lista corta de las variables que hemos definido en Matlab. Por ejemplo: who Your variables are: T f fs valor Ntese que MATLAB no nos da el valor de cada variable, nicamente nos proporciona sus nombres. Para ver los valores es necesario escribir los nombres en el prompt de MATLAB. whos muestra la lista de variables, y adems el tamao que ocupan e informacin de como est almenada la variable:

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

Nota: Cuando usamos estas rdenes, MATLAB no nos dice el valor de las variables, simplemente da sus nombres. Para encontrar el valor de cada variable hay que introducir el nombre de la variable en el indicativo o promp de MATLAB, y darle al Enter. Existe una forma de ver el espacio de trabajo de MATLAB, de igual forma que si utilizramos la orden whos, pero de una forma grfica. Esto lo conseguimos con el Explorador del espacio de trabajo. Para ello, basta con ir a la opcin Show Workspace del men File o el botn de la barra de herramientas Workspace Browser:

El aspecto del workspace browser es el siguiente:

ne

tri

al

ve r

si on

Pgina 9 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas

- Eliminacin: Existen dos opciones para eliminar una variable del Espacio de Trabajo o Workspace: (a) Introducir en command window el comando clear seguido del nombre de la variable. Por ejemplo si ponemos clear fs Borra solo la variable fs. clear Borra todas las variables y no pueden ser recuperadas. (b) Seleccionar la variable en el workspace y borrarla directamente con la tecla delete. - Modificacin: Haciendo doble click en una variable se accede al contenido de dicha variable, pudiendo modificar sus valores. Por ejemplo si se desea ver el valor de la variable fs todo lo que hay que hacer es preguntarle a MATLAB escribiendo el nombre de la variable en el prompt. fs fs = 1000 Para renombrar una variable, basta con seleccionarla con el ratn en el workspace browser y volver a clickar sobre ella. Escribimos encima el nuevo nombre y pulsamos Enter. 3.3. GRABANDO Y RECUPERANDO DATOS Adems de recordar variables, MATLAB puede guardar y cargar datos en un archivo. Se puede grabar y recuperar los datos del espacio de trabajo (Workspace). En la mayora de las plataformas esto se puede hacer con las opciones Save Workspace As... y Load Workspace del men File que abre una caja de dilogo standard para grabar o cargar archivos cargados previamente. Nota: Si cargamos variables que poseen el mismo nombre que las que se encuentran en el espacio de trabajo de MATLAB, se cambian los valores de las variables a aquellos cargados en el archivo. Si el men File no esta disponible, MATLAB provee los comandos save y load que ofrecen ms flexibilidad.

pd

Recupera todas las variables que estn almacenadas en el archivo "matlab.mat" load <nombrearchivo> Recupera las variables desde el archivo "nombrearchivo" load <nombrearchivo.extensin> Lee el archivo "nombrearchivo.extensin" que puede ser un archivo ASCII con un array rectangular de datos. El resultado es una matriz de tamao "m x n" con el mismo nombre que el archivo. Los datos ASCII deben estar en formato de matriz, o MATLAB ser incapaz de usarlos cuando se recuperan. Aclaracin: Si no resguardamos el espacio de trabajo de ninguna forma, cuando reiniciemos MATLAB se corre el riesgo que se pierdan las variables e informacin existente que no hayamos guardado anteriormente. Por ejemplo la versin 6.5 entre otras tiene la ventana Command History que almacena un periodo de tiempo determinado de ltimos ingreso en la consola de comando ordenados por fecha y hora.
Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 10 de 27

fM ac hi

save permite grabar una o ms variables en el formato de su eleccin. Este comando utiliza el archivo "n nombrearchivo.mat" en lugar del archivo por defecto "matlab.mat" por ejemplo. Graba todas las variables en el archivo matlab.mat save Saving to: matlab.mat Graba todas la variables en el archivo datos.mat save datos Graba solo las variables fs, f y T en el archivo datos.mat save datos fs f T

load

ne

tri

al

ve r

si on

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas Archivos M (Script) En problemas simples cargar los comandos uno por uno en el prompt de MATLAB es rpido y eficiente. Sin embargo cuando el nmero de comandos aumenta o cuando se quiere cambiar los valores de una o ms variables y reevaluar una cantidad de rdenes o comandos, escribirlos nuevamente cada vez en el prompt de MATLAB se convierte en una tarea tediosa. Para solucionar este problema MATLAB permite ingresar una vez todos los comandos que deseemos en un simple archivo de texto, luego el archivo es abierto por MATLAB y los comandos son ejecutados uno por uno (secuencialmente), de la misma forma en que lo seran si hubieran sido escritos en el prompt de MATLAB. Estos archivos se llaman Script o simplemente Archivos-M. El trmino Script simboliza el hecho de que MATLAB solamente lee lo escrito en el archivo (script) y lo ejecuta, el nombre archivo-M indica que el archivo de texto o script debe tener la extensin .m como p.ej. ejemplo1.m. Un archivo.m, consiste en una secuencia de sentencias Matlab, posiblemente incluyendo referencias a otros archivos.m, o recursivamente a si mismo. Las variables de los script o programas se mantiene en el espacio de trabajo, pudiendo ser invocadas en cualquier momento para ver su contenido. Para crear un Script o archivo-M elija la opcin New del men File y ah seleccione M-file. Este procedimiento abre en una ventana el editor de texto incluido en Matlab, all se deben ingresar los comandos deseados.

pd

Los M-files se guardan (File Save) en el directorio en el que estemos trabajando (fijado en la ventana current directory) con extensin.m. El comando save guarda las variables que se encuentren en el workspace con extensin.mat. Nota: Tanto los M-files como los ficheros de datos, creados previamente, se abren desde la ventana current directory haciendo doble click sobre ellos. Ejecucin del script: Despus que el archivo es creado con el nombre ejemplo1.m y grabado en el disco, MATLAB ejecutar los comandos, que estn dentro del archivo, simplemente escribiendo el nombre del archivo por ej. ejemplo1 (sin extensin) en el prompt de MATLAB y dar ENTER. Para ejecutar un M-file hay otras dos opciones: pulsamos F5 o el botn Run
Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 11 de 27

fM ac hi

En otras plataformas donde la barra de men no esta disponible es conveniente abrir en otra ventana su editor de texto ms usado y generar de este modo el archivo-m. El ejemplo muestra un archivo con el ejemplo del inicio del curso: %ejemplo1 archivo .m fs=1000; f=10; T=1/fs; tt=2; %tiempo total a muestrearse la seal en segundos n=tt*fs; %nmero de muestras t=0:T:(n*T); %escala de tiempos en segundos y=sin(2*pi*f*t); %generacin de la sinusoide plot(t,y);%grafica y en funcin de t grid %pone la grilla en el grfico

ne

tri

al

ve r

si on

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas Los resultados no se ven normalmente, a menos que est activado el comando "echo on". La opcin "Run Script" del men file permite ejecutar cualquier programa preexistente almacenado en un fichero-M. Normalmente los comandos que se leen del archivo-M no son mostrados mientras se evalan. El comando echo on permite que MATLAB muestre los comandos en la ventana de comandos a medida que son ledos y evaluados. echo off elimina el comando anterior y echo alterna entre las 2 posibilidades.

Ventajas de uso de archivos M: Podemos cambiar los valores de las variables cuantas veces sea necesario sin tener que volver a escribir todos los comandos cada vez. Tambin podemos grabar los archivos-M en el disco para volver a utilizarlos en futuras sesiones de MATLAB. Los archivos-M tambin son convenientes en los casos en que es necesario ingresar grandes cantidades de datos, por ejemplo resultados de mediciones de laboratorio. Los datos son ingresados mediante el editor como ya lo dijimos y se hace mas sencillo corregir errores sin necesidad de volver a ingresar todos los datos nuevamente. Igualmente estos datos pueden guardarse para futuras sesiones. La mayor utilidad de un archivo-M o Script se presenta en la automatizacin de procesos. Adems, en la lneas de un fichero-M se pueden introducir textos explicativos y comentarios (recordemos el smbolo %) Nota: Es recomendable introducir comentarios en los programas M-file para, cuando se revisan los cdigos, ayudar al lector a saber que es lo que el programa est haciendo. Los comentarios aparecen en color verde en los M-file. Nota: Una prctica bastante til al comenzar un M-file es escribir, en primer lugar, los comandos clc y clear. Por ejemplo: % Ejemplo de M-file clc % para limpiar los resultados de command window clear % para borrar las variables del workspace % Creamos una matriz A A = [1, 2; 3, 4]; % Creamos otra matriz B que sea la traspuesta de A B = A'; % Mostramos B en la pantalla del command window B % Guardamos las dos matrices creadas A y B en un fichero llamado. % matrices_A_B. El fichero tendr extensin.mat y se guarda en el % directorio en el que nos encontremos (fijado en la ventana % current directory). save matrices_A_B; % Borramos de la memoria de Matlab las variables del workspace clear % Cargamos de el fichero matrices_A_B previamente creado load('matrices_A_B.mat'); % Mostramos A en la pantalla del command window A % Fin del M-file

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

ne

tri

al

ve r

si on

Pgina 12 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas MATLAB proporciona una serie de funciones diseadas particularmente para cuando se trabaja con archivos-M. Funciones para Archivos-M disp(ans) Echo Muestra los resultados en pantalla sin mostrar el nombre de las variables. Controla la presentacin de los comandos de un archivo-M en la ventana de comandos. Por ej. echo on Permite ver en pantalla las lneas de comandos de un archivo-M echo off No presenta en pantalla las lneas de comandos de un archivo-M (opcin por defecto) Input Comando para el ingreso de datos. Keyboard Da el control temporalmente al teclado => Interrumpe la ejecucin de un archivo-M y pasa el control al teclado para que el usuario realice otras tareas. Se vuelve a la ejecucin del archivo-M tecleando el comando "return" y pulsando Enter. pause La ejecucin se para hasta que se oprima cualquier tecla. pause(n) La ejecucin se detiene por n segundos. WaitforbuttonpressLa ejecucin se detiene hasta que se oprima una tecla del mouse o del teclado. return Nos devuelve a la ejecucin de un archivo-M despus de una interrupcin break Causa la interrupcin de un bucle prematuramente clc Limpia la ventana de comandos home Oculta el cursor Algunos ejemplos de las funciones antes descritas: fs fs = 1000

pd

Al correr este Script o archivo-m la pantalla muestra lo siguiente: ejemplo1 Ingrese el tiempo total en segundos Usted ingresa el tiempo deseado y Matlab devuelve el grfico con el cambio efectuado. Por ejemplo si ponemos 10 segundos nos da la siguiente salida:

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

%ejemplo1 archivo .m modificado con la funcin input load datos tt=input('Ingrese el tiempo total en segundos: '); n=tt*2; t=0:2:(n*2); y=sin(2*pi*t); plot(t,y) grid

ne

tri

al

fs=2000; disp(fs) 2000 La funcin input de gran utilidad para evitar editar cada vez que se quiera cambiar el valor de una variable, esta funcin permite que el archivo-m pregunte le valor de la variable.

ve r

si on

Pgina 13 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas El comando keyboard permite dar el control al teclado mientras se ejecuta un Script, y da la posibilidad de ingresar comandos, hacer pruebas o cambiar valores antes que se termine de ejecutar el Script. Cuando se ingresa el comando return la ejecucin del Script contina. Es muy til para la depuracin de Script. Observemos el uso del comando keyboard en el siguiente Script. %ejemplo1 archivo .m modificado con el comado keyboard load datos tt=input('Ingrese el tiempo total en segundos: '); keyboard n=tt*fs; t=0:T:(n*T); y=sin(2*pi*f*t); plot(t,y) grid Al correr el Script el resultado es el siguiente: ejemplo1 Ingrese el tiempo total en segundos: 10 K t Columns 1 through 9 0 2 4 6 8 10 12 14 16 Columns 10 through 18 18 20 22 24 26 28 30 32 34 Columns 19 through 21 36 38 40 K whos Name Size Bytes Class n 1x1 8 double array t 1x21 168 double array tt 1x1 8 double array y 1x21 168 double array Grand total is 44 elements using 352 bytes K return Cuando el comando keyboard es ejecutado, aparece el smbolo k>> que indica que el control ha sido transferido al teclado temporalmente. En el ejemplo el numero de cintas fue cambiado a 7, el comando whos fue utilizado para ver las variables en existencia en ese momento, y con el comando return el control es devuelto al archivo script.

cd p=cd cd path chdir chdir path delete test dir ls matlabroot de MATLAB. path pwd type test what which test

pd

El comando path controla la ruta de bsqueda de MATLAB. Esta ruta es una lista de directorios donde se ubican los archivos de MATLAB.

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

Administracin de Archivos MATLAB proporciona comandos que permiten el manejo de archivos como por ejemplo: Listado, borrado y edicin de los mismos, as como tambin el cambio del directorio actual. Adems es posible modificar la ruta de bsqueda de MATLAB (Path). Un sumario de estos comandos se lista a continuacin. Funciones para la Administracin de Archivos Muestra el directorio de trabajo actual. Devuelve el directorio actual en p. Cambia al directorio o carpeta dada en path. Igual que cd. Igual que cd path. Borra el archivo-M llamado test.m. Lista todos los archivos del directorio actual. Igual que dir. Devuelve la ruta del directorio raz de MATLAB, donde se encuentra el ejecutable Muestra o modifica la ruta de bsqueda de MATLAB. Igual que cd. Muestra el archivo-M test.m en la ventana de comandos. Devuelve una lista de todos los archivos-M y archivos-MAT en el directorio de trabajo actual. Muestra la ruta al archivo test.m

ne

tri

al

ve r

si on

Pgina 14 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas Cuando MATLAB encuentra una variable, funcin o archivo que coincide con la especificada acta de manera correspondiente segn sea variable, funcin o archivo. Esta ruta de bsqueda es vlida tambin cuando se usa el comando load Si existen archivos de MATLAB que se encuentran en un directorio no especificado en la ruta de bsqueda de MATLAB y tampoco estn en el directorio actual, MATLAB no los encontrar. Existen dos soluciones: (1) Cambiar el directorio actual al deseado con el comando cd o chdir o (2) Aadir el directorio deseado a la ruta de bsqueda de MATLAB. Esta opcin se ejecuta con el comando path. path MATLABPATH g:\matlab\toolbox\local g:\matlab\toolbox\matlab\datafun g:\matlab\toolbox\matlab\elfun g:\matlab\toolbox\matlab\elmat g:\matlab\toolbox\matlab\funfun g:\matlab\toolbox\matlab\general g:\matlab\toolbox\matlab\color g:\matlab\toolbox\matlab\graphics g:\matlab\toolbox\matlab\iofun g:\matlab\toolbox\matlab\lang g:\matlab\toolbox\matlab\matfun g:\matlab\toolbox\matlab\ops g:\matlab\toolbox\matlab\plotxy g:\matlab\toolbox\matlab\plotxyz g:\matlab\toolbox\matlab\polyfun g:\matlab\toolbox\matlab\sounds g:\matlab\toolbox\matlab\sparfun g:\matlab\toolbox\matlab\specfun g:\matlab\toolbox\matlab\specmat g:\matlab\toolbox\matlab\strfun g:\matlab\toolbox\matlab\dde g:\matlab\toolbox\matlab\demos g:\matlab\toolbox\simulink\simulink g:\matlab\toolbox\simulink\simdemos g:\matlab\toolbox\simulink\blocks g:\matlab\toolbox\simulink\sb2sl g:\matlab\toolbox\images g:\matlab\toolbox\signal g:\matlab\toolbox\nnet\nnet g:\matlab\toolbox\nnet\nndemos g:\matlab\toolbox\ident g:\matlab\toolbox\symbolic g:\matlab\toolbox\control g:\matlab\toolbox\robust El comando path sin argumentos muestra la ruta de bsqueda de MATLAB por defecto, sta depende de la configuracin de MATLAB y de la plataforma en que se trabaje.

pd

MATLAB en el Arranque y cierre Cuando MATLAB arranca, ejecuta dos archivos-M: matlabrc.m y startup.m . - El archivo matlabrc.m viene con MATLAB y generalmente no es necesario que sea modificado. Los comandos en este archivo determinan algunos valores por defecto (parmetros de inicializacin) como ser el tamao de la ventana de figuras, su ubicacin, los colores de fondo, mensaje de inicio, etc. En algunas plataformas la ruta de bsqueda de MATLAB esta en este archivo. En todas las plataformas el archivo matlabrc.m chequea si existe el archivo startup.m en la ruta de bsqueda de MATLAB, si existe entonces ejecuta los comandos que estn dentro del mismo. - El archivo startup.m tpicamente contiene comandos para personalizar los valores por defecto de MATLAB. Es muy comn poner uno o ms comandos path en este archivo para aadir directorios adicionales en la ruta de bsqueda de MATLAB. Una de las cosas que hace este archivo es ver si en algn directorio del search path existe otro archivo llamado startup.m, y en caso de que exista lo ejecuta. Esto abre la posibilidad de que cada usuario arranque MATLAB de una forma personalizada. El archivo startup.m es un archivo-M standard, no existen restricciones en cuanto a los comandos que pueden ser usados, obviamente no seria inteligente utilizar el comando quit en este archivo. Por ejemplo el formato de presentacin numrica puede ser cambiado con el comando
Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 15 de 27

fM ac hi

ne

tri

al

ve r

si on

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas format. Tambin se puede cambiar la escala de colores o el color del fondo de los grficos del negro al blanco con el comando whitebg. Un posible contenido de este archivo puede ser el siguiente (se sugiere crearlo con Notepad): format compact addpath 'g:\Matlab\Practicas' -end disp('Hola!') De forma anloga, al abandonar la ejecucin de MATLAB con el comando quit se ejecuta automticamente el archivo finish.m, siempre que se encuentre en alguno de los directorios del search path. Este archivo se puede utilizar por ejemplo para guardar el espacio de trabajo de MATLAB y poder continuar en otro momento a partir del punto en el que se abandon el trabajo, por ejemplo cerrando el programa. Formatos de presentacin numrica Se puede cambiar el formato de los nmeros en pantalla mediante el comando format. La presentacin numrica en MATLAB sigue las siguientes reglas: - Por defecto si el nmero es un entero MATLAB lo muestra como tal, si es un nmero real MATLAB lo muestra con 4 dgitos a la derecha del punto decimal. - Si los dgitos significativos superan este rango, entonces MATLAB muestra al nmero en notacin cientfica. Se puede variar este tipo de presentacin especificando el formato deseado mediante la opcin Numerical Format en el men Options si se encuentra disponible o sino escribiendo el comando apropiado en el prompt de MATLAB. Usando por ejemplo la variable costo_promedio del ejemplo los formatos son: COMANDO format format format format format format format format long short e long e hex bank + rat short costo_promedio 24.3333333333333 2.4333e+001 2.433333333333333e+001 4038555555555555 24.33 + 73/3 24.3333 COMENTARIO muestra 15 dgitos 5 dgitos y exponente 16 dgitos y exponente Hexadecimal 2 dgitos decimales positivo, negativo o cero Aproximacin racional Presentacin por defecto

Notas: Es importante destacar que MATLAB no cambia la presentacin del nmero internamente con los distintos formatos, el cambio es hecho nicamente en pantalla. Los valores mostrados en la columna comentario puede variar dependiendo de la versin de Matlab que se utilice, para ver los valores de la versin ejecutar: help format

Una de las principales ventajas de Matlab con respecto a similares programas consiste en la gran cantidad de informacin que el usuario puede obtener del funcionamiento del programa y de los comandos a travs de la ayuda. Evidentemente MATLAB tiene muchos mas comandos de los que son posibles recordar, MATLAB provee asistencia para encontrar los comandos adecuados a travs de su ayuda en lnea. Esta caractersticas esta disponible de tres formas: mediante el comando help, mediante el comando lookfor y de forma interactiva usando la opcin help de la barra de men. El comando help: Es la forma ms simple de ayuda si se sabe el tema del que se requiere informacin, escribiendo help tema se muestra ayuda acerca del tema si este existe. help cos COS Cosine. COS(X) is the cosine of the elements of X. Overloaded methods help sym/cos.m Ac vemos la ayuda que muestra MATLAB de la funcin raz cuadrada: help sqrt SQRT Square root. SQRT(X) is the square root of the elements of X. Complex results are produced if X is not positive.
Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 16 de 27

pd

fM ac hi

3.4. AYUDA EN LNEA

ne

tri

al

ve r

si on

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas See also SQRTM. Overloaded methods help sym/sqrt.m La orden "help" nos muestra, entre otras cosas, la sintaxis que utiliza el comando por el que preguntamos, algo que puede ser de gran utilidad en caso de no recordar exactamente la forma de utilizarlo, y no disponer de un manual en ese momento. Nota: Las funciones de MATLAB se deben llamar siempre en minsculas, en la ayuda aparece la funcin SQRT en maysculas solo para facilitar la lectura. Nota: El comando help, sin argumentos, muestra una gua de todos los temas o categoras en los que MATLAB tiene ayuda con una breve descripcin. help HELP topics: matlab\general - General purpose commands. matlab\ops - Operators and special characters. matlab\lang - Programming language constructs. matlab\elmat - Elementary matrices and matrix manipulation. matlab\elfun - Elementary math functions. matlab\specfun - Specialized math functions. matlab\matfun - Matrix functions - numerical linear algebra. matlab\datafun - Data analysis and Fourier transforms. matlab\audio - Audio support. matlab\polyfun - Interpolation and polynomials. matlab\funfun - Function functions and ODE solvers. matlab\sparfun - Sparse matrices. matlab\graph2d - Two dimensional graphs. matlab\graph3d - Three dimensional graphs. matlab\specgraph - Specialized graphs. matlab\graphics - Handle Graphics. matlab\uitools - Graphical user interface tools. matlab\strfun - Character strings. matlab\iofun - File input/output. matlab\timefun - Time and dates. matlab\datatypes - Data types and structures. matlab\verctrl - Version control. matlab\winfun - Windows Operating System Interface Files (DDE/COM) winfun\comcli - (No table of contents file) matlab\demos - Examples and demonstrations. toolbox\local - Preferences. simulink\simulink - Simulink simulink\blocks - Simulink block library. simulink\components - Simulink components. simulink\fixedandfloat - (No table of contents file) fixedandfloat\fxpdemos - Fixed-Point Blockset Demos fixedandfloat\obsolete - Obsolete Fixed-Point Blockset simulink\simdemos - Simulink 4 demonstrations and samples. simdemos\aerospace - Simulink: Aerospace model demonstrations and samples. simdemos\automotive - Simulink: Automotive model demonstrations and samples. simdemos\simfeatures - Simulink: Feature demonstrations and samples. simdemos\simgeneral - Simulink: General model demonstrations and samples. simdemos\simnew - Simulink: New features model demonstrations and samples. simulink\dee - Differential Equation Editor simulink\dastudio - (No table of contents file) stateflow\stateflow - (No table of contents file) stateflow\sfdemos - Stateflow demonstrations and samples. stateflow\coder - (No table of contents file) rtw\rtw - (No table of contents file) toolbox\pde - Partial Differential Equation Toolbox. simulink\perftools - Simulink Performance Tools simulink\mdldiff - Simulink Graphical Merge simulink\simcoverage - Simulink Model Coverage Tool rtw\accel - Simulink Accelerator toolbox\reqmgt - Requirements Management Interface. toolbox\rptgen - MATLAB Report Generator

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

ne

tri

al

ve r

si on

Pgina 17 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas toolbox\rptgenext - Simulink Report Generator toolbox\sb2sl - SB2SL (converts SystemBuild to Simulink) toolbox\symbolic - Symbolic Math Toolbox. MATLAB6p5\work - (No table of contents file) For more help on directory/topic, type "help topic". For command syntax information, type "help syntax". Si el tema por el que preguntamos no existe en MATLAB, el la pantalla nos aparece un mensaje de error. Por ejemplo, si preguntamos por el tema "mesa" : help utn utn.m not found. El comando lookfor: Si no se esta seguro del nombre del tema o funcin del que se requiere ayuda, el comando lookfor, seguido por una palabra relativa (palabra clave general) al tema que se necesita, busca en las ayudas informacin donde se encuentre la palabra a continuacin del comando. La palabra a continuacin de lookfor no tiene que ser necesariamente un comando de MATLAB, por ejemplo: lookfor Complex CONJ Complex conjugate. IMAG Complex imaginary part. REAL Complex real part. CPLXDEMO Maps of functions of a complex variable. CPLXGRID Polar coordinate complex grid. CPLXMAP Plot a function of a complex variable. GRAFCPLX Demonstrates complex function plots in MATLAB. CCEPS Complex cepstrum. PHASE Computes the phase of a complex vector DSORT Sort complex discrete eigenvalues in descending order. ESORT Sort complex continuous eigenvalues in descending order LOGM2 LOGM2(X) is the matrix natural logarithm of X . Complex mixedalg.m: % [MULT,XQO] = MIXEDALG(T,XQI,K) finds the existence of a complex,diagonal De esta forma obtenemos un listado de todos los temas de ayuda en los que aparece la palabra "complex". Posteriormente, podemos usar la orden "help" para visualizar ayudas acerca de una de las rdenes especficas que hemos obtenido, por ejemplo, la orden "conj": help conj CONJ Complex conjugate. CONJ(X) is the complex conjugate of X. For a complex X, CONJ(X) = REAL(X) - i*IMAG(X). See also REAL, IMAG, I, J. Overloaded methods help sym/conj.m

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

ne

tri

al

ve r

si on

Pgina 18 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas Men Help: Otra alternativa son las opciones del men Help. Estas opciones crean una ventana de ayuda de MATLAB que permite encontrar ayuda de distintos temas y funciones.

Notas: El comando helpwin o >> doc <palabra> seguido de un nombre de comando muestra la informacin correspondiente a ese comando en la ventana Help Window/entorno web. Por Ejemplo:

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

ne

tri

al

>> helpwin simulink

ve r

Aclaracin: La presentacin grafica de la pantalla anterior puede variar dependiendo de la versin de Matlab.

si on

Pgina 19 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas 3.5. FUNCIONES Algunas funciones Matemticas A continuacin se muestra una lista parcial de funciones de MATLAB . La mayora de ellas se usan de la misma manera que como se escribiran en el papel. Algunas funciones comunes: abs(x) acos(x) acosh(x) angle(x) asin(x) atan(x) atan2(x) atanh(x) ceil(x) conj(x) cos(x) cosh(x) exp(x) fix(x) floor(x) gcd(x,y) imag(x) lcm(x,y) log(x) log10(x) real(x) rem(x,y) round(x) sign(x) sin(x) sinh(x) sqrt(x) tan(x) tanh(x) Ejemplos: Valor absoluto o mdulo de un no. complejo Arco coseno de x Arco coseno hiperblico de x Angulo de un complejo Arco seno de x Arco tangente de x Arco tangente de x en los 4 cuadrantes Arco tangente hiperblica de x Redondeo hacia ms infinito Conjugado de un complejo Coseno Coseno hiperblico Exponencial : ex Redondeo hacia cero Redondeo hacia menos infinito Mximo comn divisor de los enteros x , y Parte imaginaria de un complejo Mnimo comn mltiplo de los enteros x, y Logaritmo natural Logaritmo decimal Parte real de un complejo Resto de la divisin x/y Redondeo hacia el entero ms cercano Funcin signo ej. sign(1.2)=1,sign(-23,3)=-1,sign(0)=0 Seno Seno hiperblico Raz cuadrada Tangente Tangente hiperblica x=sqrt(2)/2 % Raz cuadrada x= 0.7071 y=asin(x) % Arco seno de x y= 0.7854 y=sqrt(3^2+4^2) %relacin del tringulo rectngulo 3-4-5 y= 5 y=rem(23,4) %funcin resto de la divisin x/y, 23/4 tiene un resto = 3 y= 3 x=2.6,y1=fix(x),y2=floor(x),y3=ceil(x),y4=round(x) % funciones de redondeo x= 2.6000 y1 = 2 y2 = 2 y3 = 3 y4 = 3

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

ne

tri

al

ve r

si on

Pgina 20 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas Funciones externas Cuando usamos la funciones internas de MATLAB (built-in functions) como inv, abs, angle, sqrt, etc. MATLAB toma las variables que le son pasadas como argumento, calcula el resultado y luego devuelve la salida. Los comandos evaluados dentro de la funcin, as como tambin cualquier variable intermedia utilizada por la funcin, son transparentes al usuario. Todo lo que se ve es la entrada y la salida, la funcin es una caja negra. MATLAB tambin dispone de funciones externas, stas son funciones creadas a partir de las funciones internas y son ms complejas y extensas. El contenido de estas funciones no es invisible al usuario, todos los comandos pueden verse e incluso el usuario puede adaptarlos a las necesidades propias. MATLAB tambin proporciona la posibilidad de crear funciones en la forma de archivos de texto-M, como los vistos en los script anteriormente. Una funcin-M es similar a un script o archivo-M, ya que es un archivo de texto con la extensin.m. Al igual que los archivos-M las funciones no son tipeadas en la ventana de comandos, sino en un editor de textos externo. Una funcin-M se diferencia de un archivo-M en el sentido que la funcin se comunica con el espacio de trabajo de MATLAB solo a travs de las variables que le son pasadas a la funcin como argumento y a travs de las variables de salida que la funcin crea. Las variables intermedias que usa la funcin no aparecen ni interactan con el espacio de trabajo de MATLAB. Como se puede observar en el ejemplo de funcin en el cuadro de abajo, ser trata de la funcin externa de Matlab que se encuentra en el subdirectorio elfun (funciones elementales). y se llama fliplr.m. Esta funcin invierte los elementos de una matriz de izquierda a derecha. La primera lnea de la funcin la define como tal con el comando function esta es la primer diferencia respecto a un archivo-M, a continuacin la variable de salida seguida del nombre de la funcin, que el mismo que el del archivo donde se encuentra, sin la extensin.m y luego la variable de entrada. A continuacin viene una secuencia de comentarios que se muestran en respuesta al comando help fliplr. La primera lnea de ayuda, llamada la lnea H1, es la lnea que utiliza el comando lookfor para buscar el tema de ayuda. Finalmente el resto contiene los comandos de MATLAB que crean las variables de salida. function y = fliplr(x) %FLIPLR Flip matrix in the left/right direction. % FLIPLR(X) returns X with row preserved and columns flipped % in the left/right direction. % % X=123 becomes 3 2 1 % 456 654 % % See also FLIPUD, ROT90. % Copyright (c) 1984-94 by The MathWorks, Inc.

Reglas y Propiedades Las funciones-M deben seguir reglas especficas. Adems, tienes varias propiedades, stas son: 1. El nombre de la funcin y del archivo deben ser idnticos. Por ejemplo la funcin fliplr est almacenada en el archivo fliplr.m. 2. La primera vez que MATLAB ejecuta una funcin-M, abre el correspondiente archivo de texto y compila los comandos en una representacin interna de memoria, esto acelera su ejecucin para futuras llamadas a la funcin. Si la funcin contiene referencias a otras funciones, ellas son tambin compiladas en memoria. Los script o archivos-M no son compilados ni cuando son llamados de dentro de una funcin; los archivos-M son abiertos e interpretados lnea por lnea cada vez que se los llama. 3. Las primeras ocho lneas de comentarios despus del nombre de la funcin son las lneas mostradas despus de ejecutar el comando >>help nombre_de_la_funcin . 4. La primera lnea de ayuda, llamada lnea H1, es la lnea buscada por el comando lookfor. 5. Las funciones pueden tener cero o ms argumentos de entrada as como tambin cero o ms argumentos de salida. 6. Las funciones pueden ser llamadas con menos argumentos de entrada o salida que los especificados, pero no por un nmero mayor de argumentos que los especificados. Un error se genera automticamente si la funcin es llamada con un nmero mayor de argumentos que e el especificado en la primer lnea del archivo despus del comando function. 7. Cuando una funcin tiene ms de un argumento de salida, las variables de salida se especifican entre corchetes.ej [V,D]=meshgrid(x,y). 8. El nmero de argumentos de entrada y de salida, usados cuando una funcin es llamada, est disponible dentro de las funciones nargin y nargout respectivamente. Estas funciones se usan para especificar las variables de entrada que el usuario ingres y determinar que variables de salida desea el
Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 21 de 27

pd

fM ac hi

[m,n] = size(x); y = x(:,n:-1:1);

ne

tri

al

ve r

si on

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas usuario. Esto para las funciones que admiten distintos cantidad de argumentos de entrada y salida. Por ejemplo veamos la funcin externa de MATLAB linspace que est en el directorio de Matlab. function y = linspace(d1, d2, n) %LINSPACE Linearly spaced vector. % LINSPACE(x1, x2) generates a row vector of 100 linearly % equally spaced points between x1 and x2. % LINSPACE(x1, x2, N) generates N points between x1 and x2. % % See also LOGSPACE, :. % if nargin == 2 n = 100; end y = [d1+(0:n-2)*(d2-d1)/(n-1) d2]; Copyright (c) 1984-94 by The MathWorks, Inc.

fM ac hi

Aqu si el usuario llama a la funcin linspace con solo dos argumentos de entrada ej linspace(0,10) hace l numero de puntos (n) igual a 100 por defecto. Si son tres los argumentos de entrada el tercer argumento determina el nmero de puntos (n). 9. Las funciones tienen su propio espacio de trabajo, totalmente independiente del espacio de trabajo de MATLAB. La nica conexin entre las variables dentro de una funcin y el espacio de trabajo de MATLAB son las variables de entrada y salida de la funcin. Si una funcin cambia el valor de alguna variable de entrada dentro de ella, el cambio solo se experimenta dentro de la funcin y no afecta el valor de la variable en el espacio de trabajo de MATLAB. Las variables creadas dentro de una funcin existen slo dentro del espacio de trabajo de la funcin, adems su existencia es temporal mientras se ejecuta la funcin despus desaparecen. De esta forma no es posible almacenar valores en el espacio de trabajo de una funcin de una llamada a la otra (Sin embargo, el uso de variables globales como se describe ms abajo permite esta posibilidad) 10. Si una variable predefinida, por ej. pi es redefinida en el espacio de trabajo de MATLAB el cambio no se observa en el espacio de trabajo de la funcin. Lo mismo ocurre a la inversa: el cambio de una variable dentro del espacio de trabajo de una funcin no se traslada al espacio de trabajo de MATLAB. 11. Cuando una funcin es llamada, las variables de entrada no son copiadas en el espacio de trabajo de la funcin, pero sus valores son accesibles desde dentro de la funcin. Sin embargo si alguno de los valores de las variables de entrada son modificadas, entonces este nuevo valor es copiado en el espacio de trabajo de la funcin. 12. Si las variables son declaradas previamente como global (globales) entonces pueden ser compartidas con otras funciones, con el espacio de trabajo de MATLAB, o en llamadas recursivas a si mismas. Para tener acceso a una variable global dentro de una funcin o en el espacio de trabajo de MATLAB, la variable debe ser declarada global dentro de cada espacio de trabajo deseado. Un ejemplo del uso de variables globales puede encontrarse en las funciones de MATLAB tic y toc, que juntas funcionan como un cronmetro.

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

ne
function %TIC % % % % % %
% %

% TIC simply stores CLOCK in a global variable. global TICTOC TICTOC = clock;

tri

tic Start a stopwatch timer. The sequence of commands TIC any stuff TOC prints the time required for the stuff.
See also TOC, CLOCK, ETIME, CPUTIME. Copyright (c) 1984-94 by The MathWorks, Inc.

al

ve r

si on

Pgina 22 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas
function %TOC % % % % % t = toc Read the stopwatch timer. TOC, by itself, prints the elapsed time since TIC was used. t = TOC; saves the elapsed time in t, instead of printing it out. See also TIC, ETIME, CLOCK, CPUTIME. Copyright (c) 1984-94 by The MathWorks, Inc.

% TOC uses ETIME and the value of CLOCK saved by TIC.

global TICTOC if nargout < 1 elapsed_time = etime(clock,TICTOC) else t = etime(clock,TICTOC); end

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

ne

En la funcin tic la variable TICTOC es declarada como global, y su valor es definido por una llamada a la funcin clock .Despus en la funcin toc la variable TICTOC tambin se declara como global, dando a toc acceso al valor almacenado en TICTOC. Usando este valor, toc calcula el tiempo desde que la funcin tic fue ejecutada. Es importante remarcar que la variable TICTOC existe en los espacios de trabajo de tic y toc y no en el espacio de trabajo de MATLAB. 13. Como una sugerencia de programacin, el uso de variables globales debe ser evitado cuando sea posible. Sin embargo, si son usadas, se sugiere que los nombres de las variables globales sean largos, en maysculas y que empiecen con el nombre del archivo-M donde aparecen por primera vez. As es posible evitar interacciones indeseables entre variables globales. Por ejemplo si la variable TICTOC hubiera sido declarada global por otra funcin o por el espacio de trabajo de MATLAB, entonces su valor podra haber sido cambiado desde el espacio de trabajo de MATLAB y nos hubiera llevado a resultados sin sentido. 14. Los archivos-M o script pueden ser llamados desde una funcin-M. En ese caso, le archivo-M ve le espacio de trabajo de la funcin no el de MATLAB. Los archivos-M llamados desde una funcin no son compilados en memoria con la funcin, sino que son abiertos y ejecutados lnea por lnea cada vez. Esto quiere decir que llamar archivos-M desde una funcin hace la ejecucin de la funcin ms lenta. 15. Las funciones-M terminan su ejecucin cuando se encuentran con el final del archivo o cuando encuentran el comando return . El comando return permite terminar una funcin sin llegar al final del archivo. En resumen las funiones-M son una simple manera de extender la capacidad de MATLAB. De hecho, muchas de las funciones estndar de MATLAB son funciones-M.

tri

al

ve r

si on

Pgina 23 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas 3.6. OPERACIONES RELACIONALES Y LOGICAS Adems de la operaciones aritmticas tradicionales, MATLAB permite utilizar operaciones relacionales y lgicas. Si se tiene experiencia con otros lenguajes de programacin, se tendra que estar familiarizado con los operadores relacionales y lgicos. El propsito de dichos operadores es realizar una determinada accin en base a condiciones verdadero/falso. El uso ms importante de esta capacidad es el control del flujo o el orden de ejecucin de los comandos de MATLAB (generalmente dentro de un archivo-M) que se puede tener de los resultados de las preguntas verdadero/falso. Como entrada para todos los operadores relacionales y lgicos, MATLAB considera a cualquier nmero distinto de cero como verdadero e igual a cero como falso. Como salida para todas las expresiones relacionales y lgicas se toma a uno para verdadero y cero para falso. Operadores Relacionales Los operadores relacionales de MATLAB incluyen todas las comparaciones comunes. < Menor que <= Menor o igual que > Mayor que >= Mayor o igual que == Ig u a l a ~= Distinto de (no igual a) las variables lgicas Verdadero y Falso se consideran: 0 falso 1 Verdadero Por ejemplo: >> A=5; >> B=5; >> C=3; >> A == C ans = 0 >> A == B ans = 1 >> Las operaciones con operadores relacionales se pueden usar para comparar dos arreglos del mismo tamao o para comparar un arreglo y un escalar, en el ltimo caso el escalar es comparado con todos los elementos del arreglo y el resultado tiene el mismo tamao del arreglo. Ejemplo I:

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

ne

tri

al

ve r

si on

Pgina 24 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas Ejemplo II. a=1:9,b=9-a a= 1 2 3 b= 8 7 c=a>4 c= 0 0 6

4 5

5 4

6 3

7 2

8 1

9 0

Operadores Lgicos Los operadores lgicos nos permiten combinar o negar las expresiones relacinales. Los operadores lgicos son: & AND | OR ~ NOT Ejemplo I:

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

sin(x)./x Warning: Divide by zero ans = 0.8415 0.9276 0.9816 NaN 0.9816 0.9276 0.8415 Al calcular la funcin sin(x)/x primero se nos da un alerta porque el cuarto dato es cero. Ya que sin(0)/0 es una indeterminacin, MATLAB devuelve como cuarto elemento la expresin NaN (que quiere decir Not a Number). Intentando nuevamente, despus de reemplazar el cero con el nmero eps: x=x+(x==0)*eps; sin(x)./x ans = 0.8415 0.9276 0.9816 1.0000 0.9816 0.9276 0.8415 Vemos ahora que el valor de sin(x)x para x tendiendo a cero nos da la respuesta correcta que es igual a 1.

ne

tri

al

ve r

d=(a==b) d= 0 0 0 0 0 0 0 0 0 En el primer caso devuelve un 1 en todas las comparaciones donde los elementos de a son mayores que 4 y 0 si no lo son. En el segundo caso compara si los elementos de a son iguales a los de b. Observe que = y = = son dos cosas distintas: = = compara dos variables y devuelve unos donde son iguales y ceros donde no lo son; en cambio = se utiliza para designar un nmero o la salida de una operacin a una variable. b=b + (b==0)*eps b= Columns 1 through 7 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 Columns 8 through 9 1.0000 0.0000 Es un ejemplo de como reemplazar los elementos nulos de un arreglo con la variable especial de MATLAB eps, que es aproximadamente 2.2 e-16. Esta expresin es usada a veces para evitar la divisin por cero: x=(-3:3)/3 x= -1.0000 -0.6667 -0.3333 0 0.3333 0.6667 1.0000

si on

Pgina 25 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas Ejemplo II: a=1:9,b=9-a a= 1 2 3 4 b= 8 7 6 5 c=a>4 c= 0 0 0 0 c=~(a>4) c= 1 1 1 1 c=(a>2)&(a<6) c= 0 0 1 1

5 4 1 0 1

6 3 1 0 0

7 2 1 0 0

8 1 1 0 0

9 0 1 0 0

Funciones Relacinales y Lgicas Adems de los operadores relacionales y lgicos vistos. MATLAB proporciona una serie de funciones relacionales y lgicas, como por ej. Funciones xor (x,y) any(x) all(x) Operacin OR exclusiva. Devuelve un 1 si algn elemento del vector x es no nulo. Si x es una matriz devuelve un 1 por cada columna de la matriz x que tenga elementos no nulos. Devuelve un 1 si todos los elementos del vector x son no nulos. Si x es una matriz devuelve un 1 por cada columna que tenga todos los elementos no nulos.

El orden de preferencia en MATLAB para operadores aritmticas, relacionales y lgicas es, de mayor a menor preferencia:

ve r
* : / -

Mayor preferencia

^ + |

.^

si on
> ~ < \ '

.* >=

.'

./ <=

.\ == ~=

pd

Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

fM ac hi

ne

tri

Menor preferencia

al

&

Pgina 26 de 27

Universidad Tecnolgica Nacional Facultad Regional Crdoba Secretara Acadmica Ing. Mecnica Cs. Bsicas 3.7. NMEROS COMPLEJOS Algunos lenguajes de programacin necesitan un manejo especial para operar con nmeros complejos, en MATLAB no es necesario => Las operaciones se escriben de la misma manera que en los nmeros reales. Por ejemplo: Si se pide la raz cuadrada de nmeros negativas: e= sqrt (-1) e= 0 + 1.0000i c1=1-2i %la i simboliza la parte imaginaria c1 = 1.0000 - 2.0000i c1=1-2j %la j tambin se utiliza como parte imaginaria c1 = 1.0000 - 2.0000i c2=3*(2-sqrt(-1)*3) c2 = 6.0000 - 9.0000i c3=sqrt(-2) c3 = 0 + 1.4142i c4=2+sin(.5)*i c4 = 2.0000 - 0.4794i

si on

En los ejemplos han sido usados los valores por defecto de MATLAB

imaginaria. En el ltimo ejemplo es necesario utilizar el smbolo de multiplicacin ya que la expresin sin(.5)i no tiene significado para MATLAB. Esta notacin slo funciona con nmeros simples como en los primeros ejemplos y no con expresiones elaboradas. Otros ejemplos: c5=(c1+c2)/c3 %de los datos anteriores c5 = -7.7782 - 4.9497i p_im_al_cuadrado=i^2 %esto tiene que ser -1 p_im_al_cuadrado = -1.0000 + 0.0000i p_im_al_cuadrado=real(p_im_al_cuadrado) %sacamos la parte imaginaria p_im_al_cuadrado = -1 En general las operaciones con nmeros complejos dan como resultado nmeros complejos. Si se da la operacin i2=-1 (real) MATLAB mantiene la parte imaginara igual a cero. En MATLAB la conversin se realiza con las funciones real, imag, abs y angle. La funcin de MATLAB abs calcula, si se trata de un nmero complejo, la Magnitud o Mdulo del mismo y si se trata de un nmero real, el valor absoluto. c1 c1 = 1.0000 - 2.0000i mag_c1=abs(c1) mag_c1 = 2.2361 As mismo la funcin angle calculo el ngulo o fase del mdulo en radianes. angulo_c1=angle(c1) angulo_c1 = -1.1071 deg_c1=angulo_c1*180/pi deg_c1 = -63.4349 La funcin real de MATLAB extrae la parte real de un nmero complejo. real_c1=real(c1) real_c1 = 1 im_c1=imag(c1) im_c1 = -2
Capacitacin Docente coordinadora por Ing. Carrizo Blanca R.

i = j = -1

para formar la parte

pd

fM ac hi

ne

tri

al

ve r

Pgina 27 de 27

Вам также может понравиться