I - Material Teorico Software MatLab - Introduccion - Ing. Carrizo

download I - Material Teorico Software MatLab - Introduccion - Ing. Carrizo

of 27

Transcript of I - Material Teorico Software MatLab - Introduccion - Ing. Carrizo

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 1 de 27

    MMAATTLLAABB:: PPrrooggrraammaaI PARTE1. Introduccin a MatlabConcepto y utilidad. Caractersticas. Versiones2. Entorno de trabajo.3. Aplicacin

    3.1. Matemticas simples. Operadores3.2. Variables. Variables especiales3.3. Grabando y Recuperando datosFormato de nmeros.Archivos M (Script). ProgramasAdministracin de Archivos. Matlab en el Arranque.3.4. Ayuda en Lnea3.5. FuncionesFunciones MatemticasFunciones externas. Reglas y Propiedades3.6. Operaciones relacionales y lgicasOperadores relacionalesOperadores lgicosFunciones relacionales y lgicas3.7. Nmeros Complejos3.8. Manejo de Arreglos3.9. ArreglosArreglos simples. Construccin de arreglosDireccionamiento de arreglosOperaciones matemticas con arreglosManipulacin de arrreglosBsqueda de indicesTamao de los arreglosFunciones para la manipulacin de arreglos.3.10. Matrices.Operaciones y Funciones con matricesSistemas de ecuaciones linealesMatrices especiales3.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. ProgramacinSentencias de Control de Flujo: input, if - else - end, while - end, for - end, continue, break,switch end.

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 2 de 27

    3.14. Grficos en Matlab:3.14.1. Graficos en 2DLa 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 3DLa funcin plot3Funciones escalares de dos variablesInterpolacin de datos irregulares o dispersosLa funcin meshGrficos de superficie. Grficos de contornosGrficos en 2D de conjuntos de datos en 3DOtras funciones para grficos en 3D

    II PARTE3.15. Simulink:Introduccin. Concepto y utilidad.Utilizacin de SimulinkLibrerasSimulacin en SIMULINK. DemoAplicacin. Construccin de un modelo sencillo.Solucin Simulink de una ecuacin diferencial.Simulacin Dinmica.

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 3 de 27

    11.. IINNTTRROODDUUCCCCIINN AA MMAATTLLAABBEl presente documento presenta una introduccin a Matlab dirigida a usuarios que no hantrabajado nunca con esta herramienta. Las principales caractersticas de Matlab as como la aplicacinbsica 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 lostemas expuestos.Se cubrirn todos los temas que son de uso general y las funciones estndar de MATLAB, es decir, queninguna 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 ydesarrollo de aplicaciones entre otras aplicaciones. Adems de ser un sistema interactivo que integra lacapacidad de clculo con la visualizacin de los resultados en un entorno grfico amigable, permite laprogramacin con un lenguaje propio, sencillo y totalmente abierto; es decir que el usuario puede crearsus propias funciones o adaptar las que contiene MATLAB segn sus necesidades.MATLAB tiene disponible una larga lista de soluciones o herramientas inteligentes paraaplicaciones especficas, son las llamadas Toolboxes (cajas de herramientas), que no son otra cosa quebibliotecas de funciones escritas en el lenguaje de MATLAB, que permiten crear, simular y desarrollarsoluciones a problemas de distintas reas como ser: Proceso de seales, Sistemas de Control,Optimizacin, Redes Neuronales, Lgica Difusa, Matemtica Simblica, etc.MATLAB es un medio computacional tcnico, con un gran desempeo para el clculo numricocomputacional y de visualizacin.

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

    Caractersticas bsicas de MatlabActualmente Matlab se encuentra en la versin R2006a (Matlab 7.2), la cual se encuentradisponible para plataforma Windows, Linux/Unix y Macintosh. Para saber que versin de Matlab disponeuna forma de solicitar a la versin es ejecutar en la consola de comando verJunto con su orientacin matricial, MATLAB tiene como ya dijimos anteriormente, caractersticas deprogramacin 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 deaplicaciones. Esta combinacin de estructuras de datos matriciales, caractersticas de programacin yherramientas GUI hace de MATLAB una herramienta poderosa para la resolucin de problemas eningeniera, ciencia, computacin y matemticas.

    El nombre de MATLAB es la contraccin deMMAATTrriixx LLAABBoorraattoorryy ((LLAABBoorraattoorriioo ddee MMAATTrriicceess)).

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 4 de 27

    22.. EENNTTOORRNNOO DDEE TTRRAABBAAJJOOEl entorno operativo de Matlab se compone de una serie de ventanas que presentamos acontinuacin. Aunque el reparto de estas ventanas en la pantalla puede cambiarse, generalmenteaparecen 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 (>>) semuestra en la ventana de comandos y cuando esta ventana esta activa el cursor debe aparecer a laderecha del prompt. El cursor y el prompt de MATLAB significan que MATLAB esta esperando para realizaralguna operacin matemtica. Los resultados de las rdenes introducidas se muestran en esta mismapantalla. Cuando MATLAB nos de una respuesta, lo har precedida de las letras "ans =" (abreviatura deanswer-> respuesta) es decir es la variable por defecto si es que no se asigno una variable de salida enconcreto.pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 5 de 27

    2. Command history: las rdenes introducidas en la ventana command window quedan grabadasen 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 currentdirectory (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 elque estemos trabajando. Lo mismo ocurre cuando cargamos datos con el comando load: el ordenadorbusca los datos en el fichero en el que estemos trabajando.

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

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 6 de 27

    33.. AAPPLLIICCAACCIIOONN

    33..11.. MMAATTEEMMTTIICCAASS SSIIMMPPLLEESSDe igual forma que una calculadora MATLAB realiza operaciones bsicas, realizar los siguientes ejemplos:3 + 9 + 78 = 90 3 x 9 + 8 x 10 = 107En MATLAB esta operacin se puede resolver de varias maneras, por ejemplo: 3+9+78

    ans =90

    3*9+8*10ans =107Observe que a MATLAB no le importan los espacios entre los signos aritmticos en la mayor partede la operacin y que la multiplicacin tiene precedencia sobre la suma como es lgico. Adems, MATLABllama al resultado ans (answer) para todos los clculos.

    OPERADORES MATEMATICOSAdems de la adicin y la multiplicacin MATLAB ofrece las siguientes operaciones aritmticas:Operacin Smbolo Ejemploadicin + 5+3sustraccin - 23-12multiplicacin * 2.8*0.67divisin / \ 56/8=8\56 (#)bPotencia ( a ) ^ 5 ^ 2 = 25

    (#) Nota: Es importante resaltar que la divisin en MATLAB puede hacerse en dos sentidos, dependiendode hacia que lado est inclinada la barra (se realiza la divisin del nmero que se encuentre "encima" de labarra entre el que est "debajo": "encima / debajo", "debajo \ encima").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 elparntesis ms interno hacia fuera.Dentro de las de igual precedencia se evala de Izq. A Der. Por ejemplo:>> 5/2*4ans =

    10>>

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

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

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 7 de 27

    - 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 lamisma 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 conun guin. Los nombres son sensitivos a maysculas y minsculas o sea que: Items, tems, itEms e ITEMS sondiferentes 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 19caracteres, 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 depreferencia ms alto, seguido por la multiplicacin y la divisin (ambas con igual preferencia), yseguidas por ltimo por la suma y la resta (estas dos tambin con igual preferencia). Se pueden emplearparntesis para alterar la preferencia en las operaciones, en cuyo caso la evaluacin se inicia dentro delparntesis ms interno y procede hacia fuera.- Reutilizacin de comandos: Para llamar o ver los comandos previamente ingresados a MATLAB seusan las teclas de manejo del cursor. La tecla - retorna el ltimo comando ingresado. Si se sigueoprimiendo la tecla se pueden ver todos los comandos segn el orden en que fueron ingresados haciaatrs; la tecla los recorre hacia adelante. Adems, si se ingresan los primeros caracteres de un comandoconocido previamente ingresado en el prompt y luego se oprime la tecla -, inmediatamente se muestra elltimo comando ingresado con esos caracteres iniciales. Las teclas , se pueden usar en cualquiermomento 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 uncomentario 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, aunqueno afecta a lo que vemos en pantalla. Tambin se puede borrar una variable especifica por Ej. clear Aclf 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 Csimultneamente), 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 ExitMATLAB 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 larepuesta 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 resultadode todas ellas. (Ver ejemplo b)... Los puntos suspensivos le dicen a MATLAB que la sentencia contina en la lnea siguiente. (Ver ejemploc)% Todo texto despus del signo porciento (%) es tomado como comentario. Esta caracterstica es tilpara documentar cada lnea. Ejemplo d.

    Ejemplo a: fs=1000fs =

    1000

    f=10f =10

    T=1/fs;

    Acabamos de crear tres variables en MATLAB: fs, f y T.(fs=frecuencia sampling, f=frecuencia yT=periodo) Obsrvese que despus de ingresar cada lnea, MATLAB mostr los resultados excepto en elcaso de T. El punto y coma al final de la lnea T=1/fs; le dice a MATLAB que evale la lnea sin mostrar

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 8 de 27

    el resultado. Esto nos muestra que podemos crear otra variable a partir de las anteriores, veamos la sigtevariable: valor=sin(2*pi*f*T)valor =0.0628Ejemplo b: A=4, B=6A =4B =6Ejemplo c: D=A*2+B*1+...C*2D =18Ejemplo d: fs=4 %Frecuencia de sampling(muestreo)Variables EspecialesAdems de estas reglas de denominacin, MATLAB tiene algunas variables especiales definidas pordefecto. Estas variables especiales tambin pueden redefinirse, pero cuando volvamos a arrancar MATLABse reestablecen los valores iniciales.Algunas de ellas son:Variables especiales Valorans El nombre por defecto para los resultadospi La relacin entre la circunferencia y el dimetro de un circuloeps El nmero ms pequeo tal que cuando se le suma un 1 , crea un nmeroen coma flotante mayor que uno.flops Nmero de operaciones en punto flotanteinf Representa infinito.p.ej. 1/0NaN Magnitud no numrica (Not a Number), por ejemplo, 0/0=>Indeterminacin p.ej. 0/0i,j i=j=-1 => sqrt (-1)nargin Nmero de argumentos de entrada usados en una funcinnargout Nmero de argumentos de salida usados un una funcinrealmin Nmero real positivo ms pequeo usablerealmax Nmero real positivo ms grande usableAlgunas consideraciones sobre las variables: Mientras usted crea variables en MATLAB habr instancias enlas que desear redefinir los valores de una o ms de ellas. Por ejemplo si reutilizamos ejemplosanteriores: fsfs = 1000T=1/fs; ff =10 TT =1.0000e-003 valorvalor =0.0628Modificamos la variable fs. fs=2000fs =2006 TT =1.0000e-003

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 9 de 27

    Usando el ejemplo anterior vemos que al cambiar el valor de fs de 1000 a 2000 el valor de la variable Tno vari. MATLAB a diferencia de una hoja de clculo no recalcula el valor de T basado en un nuevo valorde fs. Cuando MATLAB realiza un clculo lo hace en base a los valores que tiene en el momento en el queel comando es ejecutado. En el ejemplo, si se quiere actualizar el nuevo valor de T y valor es necesarioejecutar 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 losvalores por defectos ejecute el comando clear (que mostrara mas adelante) o reinicie MATLAB.Listar VariablesPara ver el contenido de ese espacio de memoria o buscar el nombre de una variable podemosusar dos comandos: who y whos. La diferencia entre ellos es:

    wwhhoo muestra una lista corta de las variables que hemos definido en Matlab. Por ejemplo: whoYour variables are:T f fs valorNtese que MATLAB no nos da el valor de cada variable, nicamente nos proporciona sus nombres. Paraver los valores es necesario escribir los nombres en el prompt de MATLAB.

    wwhhooss muestra la lista de variables, y adems el tamao que ocupan e informacin de como estalmenada la variable:

    Nota: Cuando usamos estas rdenes, MATLAB no nos dice el valor de las variables, simplemente da susnombres. Para encontrar el valor de cada variable hay que introducir el nombre de la variable en elindicativo 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 ordenwhos, pero de una forma grfica. Esto lo conseguimos con el Explorador del espacio de trabajo. Paraello, basta con ir a la opcin Show Workspace del men File o el botn de la barra de herramientasWorkspace Browser:

    El aspecto del workspace browser es el siguiente:

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 10 de 27

    - 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 fsBorra solo la variable fs. clearBorra 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, pudiendomodificar sus valores. Por ejemplo si se desea ver el valor de la variable fs todo lo que hay que hacer espreguntarle a MATLAB escribiendo el nombre de la variable en el prompt. fsfs = 1000Para renombrar una variable, basta con seleccionarla con el ratn en el workspace browser y volver aclickar sobre ella. Escribimos encima el nuevo nombre y pulsamos Enter.

    33..33.. GGRRAABBAANNDDOO YY RREECCUUPPEERRAANNDDOO DDAATTOOSSAdems 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 lasplataformas esto se puede hacer con las opciones Save Workspace As... y Load Workspace del menFile 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 detrabajo 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 msflexibilidad.save permite grabar una o ms variables en el formato de su eleccin. Este comando utiliza elarchivo "nnoommbbrreeaarrcchhiivvoo..mmaatt" en lugar del archivo por defecto "matlab.mat" por ejemplo.Graba todas las variables en el archivo matlab.mat saveSaving to: matlab.matGraba todas la variables en el archivo datos.mat save datosGraba solo las variables fs, f y T en el archivo datos.mat save datos fs f Tload Recupera todas las variables que estn almacenadas en el archivo "matlab.mat"load Recupera las variables desde el archivo "nombrearchivo"load Lee el archivo "nombrearchivo.extensin" quepuede ser un archivo ASCII con un array rectangular de datos. El resultado es una matrizde tamao "m x n" con el mismo nombre que el archivo. Los datos ASCII deben estar enformato 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 secorre el riesgo que se pierdan las variables e informacin existente que no hayamos guardadoanteriormente. Por ejemplo la versin 6.5 entre otras tiene la ventana Command History que almacenaun periodo de tiempo determinado de ltimos ingreso en la consola de comando ordenados por fecha yhora.

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 11 de 27

    Archivos M (Script)En problemas simples cargar los comandos uno por uno en el prompt de MATLAB es rpido yeficiente. Sin embargo cuando el nmero de comandos aumenta o cuando se quiere cambiar los valores deuna o ms variables y reevaluar una cantidad de rdenes o comandos, escribirlos nuevamente cada vez enel prompt de MATLAB se convierte en una tarea tediosa. Para solucionar este problema MATLAB permiteingresar una vez todos los comandos que deseemos en un simple archivo de texto, luego el archivo esabierto por MATLAB y los comandos son ejecutados uno por uno (secuencialmente), de la misma forma enque lo seran si hubieran sido escritos en el prompt de MATLAB. Estos archivos se llaman Script osimplemente Archivos-M. El trmino Script simboliza el hecho de que MATLAB solamente lee lo escrito enel archivo (script) y lo ejecuta, el nombre archivo-M indica que el archivo de texto o script debe tener laextensin .m como p.ej. ejemplo1.m.Un archivo.m, consiste en una secuencia de sentencias Matlab, posiblemente incluyendo referencias aotros archivos.m, o recursivamente a si mismo. Las variables de los script o programas se mantieneen 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. Esteprocedimiento abre en una ventana el editor de texto incluido en Matlab, all se deben ingresar loscomandos deseados.

    En otras plataformas donde la barra de men no esta disponible es conveniente abrir en otra ventana sueditor de texto ms usado y generar de este modo el archivo-m. El ejemplo muestra un archivo con elejemplo del inicio del curso:

    Los M-files se guardan (File Save) en el directorio en el que estemos trabajando (fijado en la ventanacurrentdirectory) con extensin.m. El comando save guarda las variables que se encuentren en el workspace conextensin.mat.Nota: Tanto los M-files como los ficheros de datos, creados previamente, se abren desde laventana 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 delarchivo 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

    %ejemplo1 archivo .mfs=1000;f=10;T=1/fs;tt=2; %tiempo total a muestrearse la seal en segundosn=tt*fs; %nmero de muestrast=0:T:(n*T); %escala de tiempos en segundosy=sin(2*pi*f*t); %generacin de la sinusoideplot(t,y);%grafica y en funcin de tgrid %pone la grilla en el grficopd

    fMac

    hine t

    rial ve

    rsion

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 12 de 27

    Los resultados no se ven normalmente, a menos que est activado el comando "echo on". La opcin "RunScript" 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. Elcomando echo on permite que MATLAB muestre los comandos en la ventana de comandos a medida queson 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 aescribir todos los comandos cada vez. Tambin podemos grabar los archivos-M en el disco paravolver a utilizarlos en futuras sesiones de MATLAB. Los archivos-M tambin son convenientes en los casos en que es necesario ingresar grandescantidades de datos, por ejemplo resultados de mediciones de laboratorio. Los datos soningresados mediante el editor como ya lo dijimos y se hace mas sencillo corregir errores sinnecesidad de volver a ingresar todos los datos nuevamente. Igualmente estos datos puedenguardarse 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 elsmbolo %)Nota: Es recomendable introducir comentarios en los programas M-file para, cuando se revisan loscdigos, ayudar al lector a saber que es lo que el programa est haciendo. Los comentarios aparecen encolor verde en los M-file.Nota: Una prctica bastante til al comenzar un M-file es escribir, en primer lugar, los comandos clc yclear. Por ejemplo: % Ejemplo de M-fileclc % para limpiar los resultados de command windowclear % para borrar las variables del workspace% Creamos una matriz AA = [1, 2; 3, 4];% Creamos otra matriz B que sea la traspuesta de AB = A';% Mostramos B en la pantalla del command windowB% 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 workspaceclear% Cargamos de el fichero matrices_A_B previamente creadoload('matrices_A_B.mat');% Mostramos A en la pantalla del command windowA% Fin del M-file

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 13 de 27

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

    MATLAB proporciona una serie de funciones diseadas particularmente para cuando se trabaja conarchivos-M. Funciones para Archivos-Mdisp(ans) Muestra los resultados en pantalla sin mostrar el nombre de las variables.Echo Controla la presentacin de los comandos de un archivo-M en la ventana decomandos. Por ej.echo on Permite ver en pantalla las lneas de comandos de un archivo-Mecho off No presenta en pantalla las lneas de comandos de un archivo-M (opcinpor defecto)Input Comando para el ingreso de datos.Keyboard Da el control temporalmente al teclado => Interrumpe la ejecucin de un archivo-My pasa el control al teclado para que el usuario realice otras tareas. Se vuelve a laejecucin 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 interrupcinbreak Causa la interrupcin de un bucle prematuramenteclc Limpia la ventana de comandoshome Oculta el cursor

    Algunos ejemplos de las funciones antes descritas: fsfs = 1000 fs=2000; disp(fs)2000La funcin input de gran utilidad para evitar editar cada vez que se quiera cambiar el valor de unavariable, esta funcin permite que el archivo-m pregunte le valor de la variable.

    Al correr este Script o archivo-m la pantalla muestra lo siguiente: ejemplo1Ingrese el tiempo total en segundosUsted ingresa el tiempo deseado y Matlab devuelve el grfico con el cambio efectuado. Por ejemplo siponemos 10 segundos nos da la siguiente salida:pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 14 de 27

    El comando keyboard permite dar el control al teclado mientras se ejecuta un Script, y da laposibilidad de ingresar comandos, hacer pruebas o cambiar valores antes que se termine de ejecutar elScript. Cuando se ingresa el comando return la ejecucin del Script contina. Es muy til para ladepuracin de Script.Observemos el uso del comando keyboard en el siguiente Script.

    Al correr el Script el resultado es el siguiente: ejemplo1Ingrese el tiempo total en segundos: 10K tColumns 1 through 90 2 4 6 8 10 12 14 16Columns 10 through 1818 20 22 24 26 28 30 32 34Columns 19 through 2136 38 40K whos Name Size Bytes Classn 1x1 8 double arrayt 1x21 168 double arraytt 1x1 8 double arrayy 1x21 168 double arrayGrand total is 44 elements using 352 bytesK returnCuando el comando keyboard es ejecutado, aparece el smbolo k>> que indica que el control ha sidotransferido al teclado temporalmente. En el ejemplo el numero de cintas fue cambiado a 7, el comandowhos fue utilizado para ver las variables en existencia en ese momento, y con el comando return elcontrol es devuelto al archivo script.Administracin de ArchivosMATLAB 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 posiblemodificar la ruta de bsqueda de MATLAB (Path). Un sumario de estos comandos se lista a continuacin.

    Funciones para la Administracin de Archivoscd Muestra el directorio de trabajo actual.p=cd Devuelve el directorio actual en p.cd path Cambia al directorio o carpeta dada en path.chdir Igual que cd.chdir path Igual que cd path.delete test Borra el archivo-M llamado test.m.dir Lista todos los archivos del directorio actual.ls Igual que dir.matlabroot Devuelve la ruta del directorio raz de MATLAB, donde se encuentra el ejecutablede MATLAB.path Muestra o modifica la ruta de bsqueda de MATLAB.pwd Igual que cd.type test Muestra el archivo-M test.m en la ventana de comandos.what Devuelve una lista de todos los archivos-M y archivos-MAT en el directorio detrabajo actual.which test Muestra la ruta al archivo test.mEl comando path controla la ruta de bsqueda de MATLAB. Esta ruta es una lista de directorios donde seubican los archivos de MATLAB.

    %ejemplo1 archivo .m modificado con el comado keyboard load datostt=input('Ingrese el tiempo total en segundos: ');keyboardn=tt*fs;t=0:T:(n*T);y=sin(2*pi*f*t);plot(t,y)grid

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 15 de 27

    Cuando MATLAB encuentra una variable, funcin o archivo que coincide con la especificada acta demanera correspondiente segn sea variable, funcin o archivo. Esta ruta de bsqueda es vlida tambincuando se usa el comando loadSi existen archivos de MATLAB que se encuentran en un directorio no especificado en la ruta debsqueda de MATLAB y tampoco estn en el directorio actual, MATLAB no los encontrar. Existendos 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 elcomando path. path MATLABPATHg:\matlab\toolbox\localg:\matlab\toolbox\matlab\datafung:\matlab\toolbox\matlab\elfung:\matlab\toolbox\matlab\elmatg:\matlab\toolbox\matlab\funfung:\matlab\toolbox\matlab\generalg:\matlab\toolbox\matlab\colorg:\matlab\toolbox\matlab\graphicsg:\matlab\toolbox\matlab\iofung:\matlab\toolbox\matlab\langg:\matlab\toolbox\matlab\matfung:\matlab\toolbox\matlab\opsg:\matlab\toolbox\matlab\plotxyg:\matlab\toolbox\matlab\plotxyzg:\matlab\toolbox\matlab\polyfung:\matlab\toolbox\matlab\soundsg:\matlab\toolbox\matlab\sparfung:\matlab\toolbox\matlab\specfung:\matlab\toolbox\matlab\specmatg:\matlab\toolbox\matlab\strfung:\matlab\toolbox\matlab\ddeg:\matlab\toolbox\matlab\demosg:\matlab\toolbox\simulink\simulinkg:\matlab\toolbox\simulink\simdemosg:\matlab\toolbox\simulink\blocksg:\matlab\toolbox\simulink\sb2slg:\matlab\toolbox\imagesg:\matlab\toolbox\signalg:\matlab\toolbox\nnet\nnetg:\matlab\toolbox\nnet\nndemosg:\matlab\toolbox\identg:\matlab\toolbox\symbolicg:\matlab\toolbox\controlg:\matlab\toolbox\robustEl comando path sin argumentos muestra la ruta de bsqueda de MATLAB por defecto, sta depende de laconfiguracin de MATLAB y de la plataforma en que se trabaje.MATLAB en el Arranque y cierreCuando 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 deinicializacin) 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 estearchivo. En todas las plataformas el archivo matlabrc.m chequea si existe el archivo startup.men la ruta de bsqueda de MATLAB, si existe entonces ejecuta los comandos que estn dentro delmismo.- El archivo startup.m tpicamente contiene comandos para personalizar los valores por defectode MATLAB. Es muy comn poner uno o ms comandos path en este archivo para aadirdirectorios adicionales en la ruta de bsqueda de MATLAB. Una de las cosas que hace este archivoes ver si en algn directorio del search path existe otro archivo llamado startup.m, y en caso deque exista lo ejecuta. Esto abre la posibilidad de que cada usuario arranque MATLAB de una formapersonalizada.El archivo startup.m es un archivo-M standard, no existen restricciones en cuanto a loscomandos que pueden ser usados, obviamente no seria inteligente utilizar el comando quit en estearchivo. Por ejemplo el formato de presentacin numrica puede ser cambiado con el comando

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 16 de 27

    format. Tambin se puede cambiar la escala de colores o el color del fondo de los grficos delnegro 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 automticamenteel archivo finish.m, siempre que se encuentre en alguno de los directorios del search path. Este archivose puede utilizar por ejemplo para guardar el espacio de trabajo de MATLAB y poder continuar en otromomento a partir del punto en el que se abandon el trabajo, por ejemplo cerrando el programa.Formatos de presentacin numricaSe 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 MATLABlo muestra con 4 dgitos a la derecha del punto decimal.- Si los dgitos significativos superan este rango, entonces MATLAB muestra al nmero en notacincientfica. Se puede variar este tipo de presentacin especificando el formato deseado mediante la opcinNumerical Format en el men Options si se encuentra disponible o sino escribiendo el comandoapropiado en el prompt de MATLAB. Usando por ejemplo la variable costo_promedio del ejemplo losformatos son:COMANDO costo_promedio COMENTARIOformat long 24.3333333333333 muestra 15 dgitosformat short e 2.4333e+001 5 dgitos y exponenteformat long e 2.433333333333333e+001 16 dgitos y exponenteformat hex 4038555555555555 Hexadecimalformat bank 24.33 2 dgitos decimalesformat + + positivo, negativo o ceroformat rat 73/3 Aproximacin racionalformat short 24.3333 Presentacin por defectoNotas:Es importante destacar que MATLAB no cambia la presentacin del nmero internamente con los distintosformatos, el cambio es hecho nicamente en pantalla.Los valores mostrados en la columna comentario puede variar dependiendo de la versin de Matlab que seutilice, para ver los valores de la versin ejecutar: help format

    33..44.. AAYYUUDDAA EENN LLNNEEAAUna de las principales ventajas de Matlab con respecto a similares programas consiste en la grancantidad de informacin que el usuario puede obtener del funcionamiento del programa y de los comandosa travs de la ayuda. Evidentemente MATLAB tiene muchos mas comandos de los que son posiblesrecordar, MATLAB provee asistencia para encontrar los comandos adecuados a travs de su ayuda enlnea. Esta caractersticas esta disponible de tres formas: mediante el comando help, mediante elcomando 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 requiereinformacin, 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 methodshelp sym/cos.m

    Ac vemos la ayuda que muestra MATLAB de la funcin raz cuadrada: help sqrtSQRT Square root.SQRT(X) is the square root of the elements of X. Complexresults are produced if X is not positive.

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 17 de 27

    See also SQRTM.Overloaded methodshelp 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 nodisponer de un manual en ese momento.Nota: Las funciones de MATLAB se deben llamar siempre en minsculas, en la ayuda aparece la funcinSQRT en maysculas solo para facilitar la lectura.Nota: El comando help, sin argumentos, muestra una gua de todos los temas o categoras en los queMATLAB tiene ayuda con una breve descripcin. helpHELP 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 - Simulinksimulink\blocks - Simulink block library.simulink\components - Simulink components.simulink\fixedandfloat - (No table of contents file)fixedandfloat\fxpdemos - Fixed-Point Blockset Demosfixedandfloat\obsolete - Obsolete Fixed-Point Blocksetsimulink\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 Editorsimulink\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 Toolssimulink\mdldiff - Simulink Graphical Mergesimulink\simcoverage - Simulink Model Coverage Toolrtw\accel - Simulink Acceleratortoolbox\reqmgt - Requirements Management Interface.toolbox\rptgen - MATLAB Report Generator

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 18 de 27

    toolbox\rptgenext - Simulink Report Generatortoolbox\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 utnutn.m not found.El comando lookfor: Si no se esta seguro del nombre del tema o funcin del que se requiere ayuda, elcomando lookfor, seguido por una palabra relativa (palabra clave general) al tema que se necesita, buscaen las ayudas informacin donde se encuentre la palabra a continuacin del comando. La palabra acontinuacin de lookfor no tiene que ser necesariamente un comando de MATLAB, por ejemplo: lookfor ComplexCONJ 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 vectorDSORT Sort complex discrete eigenvalues in descending order.ESORT Sort complex continuous eigenvalues in descending orderLOGM2 LOGM2(X) is the matrix natural logarithm of X . Complexmixedalg.m: % [MULT,XQO] = MIXEDALG(T,XQI,K) finds the existence of acomplex,diagonalDe 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 lasrdenes especficas que hemos obtenido, por ejemplo, la orden "conj": help conjCONJ 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 methodshelp sym/conj.m

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 19 de 27

    Men Help: Otra alternativa son las opciones del men Help. Estas opciones crean una ventanade ayuda de MATLAB que permite encontrar ayuda de distintos temas y funciones.

    Aclaracin: La presentacin grafica de la pantalla anterior puede variar dependiendo de la versin deMatlab.Notas: El comando helpwin o >> doc seguido de un nombre de comando muestra lainformacin correspondiente a ese comando en la ventana Help Window/entorno web. Por Ejemplo:

    >> helpwin simulink

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 20 de 27

    33..55.. FFUUNNCCIIOONNEESSAlgunas funciones MatemticasA continuacin se muestra una lista parcial de funciones de MATLAB . La mayora de ellas se usande la misma manera que como se escribiran en el papel.

    Algunas funciones comunes:

    abs(x) Valor absoluto o mdulo de un no. complejoacos(x) Arco coseno de xacosh(x) Arco coseno hiperblico de xangle(x) Angulo de un complejoasin(x) Arco seno de xatan(x) Arco tangente de xatan2(x) Arco tangente de x en los 4 cuadrantesatanh(x) Arco tangente hiperblica de xceil(x) Redondeo hacia ms infinitoconj(x) Conjugado de un complejocos(x) Cosenocosh(x) Coseno hiperblicoexp(x) Exponencial : exfix(x) Redondeo hacia cerofloor(x) Redondeo hacia menos infinitogcd(x,y) Mximo comn divisor de los enteros x , yimag(x) Parte imaginaria de un complejolcm(x,y) Mnimo comn mltiplo de los enteros x, ylog(x) Logaritmo naturallog10(x) Logaritmo decimalreal(x) Parte real de un complejorem(x,y) Resto de la divisin x/yround(x) Redondeo hacia el entero ms cercanosign(x) Funcin signo ej. sign(1.2)=1,sign(-23,3)=-1,sign(0)=0sin(x) Senosinh(x) Seno hiperblicosqrt(x) Raz cuadradatan(x) Tangentetanh(x) Tangente hiperblicaEjemplos: x=sqrt(2)/2 % Raz cuadradax =0.7071 y=asin(x) % Arco seno de xy =0.7854 y=sqrt(3^2+4^2) %relacin del tringulo rectngulo 3-4-5y =5 y=rem(23,4) %funcin resto de la divisin x/y, 23/4 tiene un resto = 3y =3 x=2.6,y1=fix(x),y2=floor(x),y3=ceil(x),y4=round(x) % funciones de redondeox =2.6000y1 =2y2 =2y3 =3y4 =3

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 21 de 27

    Funciones externasCuando 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 luegodevuelve la salida. Los comandos evaluados dentro de la funcin, as como tambin cualquier variableintermedia utilizada por la funcin, son transparentes al usuario. Todo lo que se ve es la entrada y lasalida, la funcin es una caja negra.MATLAB tambin dispone de funciones externas, stas son funciones creadas a partir de lasfunciones internas y son ms complejas y extensas. El contenido de estas funciones no es invisible alusuario, 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 laextensin.m. Al igual que los archivos-M las funciones no son tipeadas en la ventana de comandos, sinoen un editor de textos externo. Una funcin-M se diferencia de un archivo-M en el sentido que la funcinse comunica con el espacio de trabajo de MATLAB solo a travs de las variables que le son pasadas a lafuncin como argumento y a travs de las variables de salida que la funcin crea. Las variablesintermedias 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 funcinexterna 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 ladefine como tal con el comando function esta es la primer diferencia respecto a un archivo-M, acontinuacin la variable de salida seguida del nombre de la funcin, que el mismo que el del archivo dondese encuentra, sin la extensin.m y luego la variable de entrada. A continuacin viene una secuencia decomentarios que se muestran en respuesta al comando help fliplr. La primera lnea de ayuda, llamada lalnea H1, es la lnea que utiliza el comando lookfor para buscar el tema de ayuda. Finalmente el restocontiene los comandos de MATLAB que crean las variables de salida.

    Reglas y PropiedadesLas ffuunncciioonneess--MM 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 almacenadaen el archivo fliplr.m.2. La primera vez que MATLAB ejecuta una funcin-M, abre el correspondiente archivo de textoy compila los comandos en una representacin interna de memoria, esto acelera su ejecucinpara futuras llamadas a la funcin. Si la funcin contiene referencias a otras funciones, ellas sontambin compiladas en memoria. Los script o archivos-M no son compilados ni cuando son llamados dedentro de una funcin; los archivos-M son abiertos e interpretados lnea por lnea cada vez que se losllama.3. Las primeras ocho lneas de comentarios despus del nombre de la funcin son las lneas mostradasdespus 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 msargumentos 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 generaautomticamente si la funcin es llamada con un nmero mayor de argumentos que e el especificado enla 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 entrecorchetes.ej [V,D]=meshgrid(x,y).8. El nmero de argumentos de entrada y de salida, usados cuando una funcin es llamada, estdisponible dentro de las funciones nargin y nargout respectivamente. Estas funciones se usan paraespecificar las variables de entrada que el usuario ingres y determinar que variables de salida desea el

    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 = 1 2 3 becomes 3 2 1% 4 5 6 6 5 4%% See also FLIPUD, ROT90.% Copyright (c) 1984-94 by The MathWorks, Inc.[m,n] = size(x);y = x(:,n:-1:1);

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 22 de 27

    usuario. Esto para las funciones que admiten distintos cantidad de argumentos de entrada y salida. Porejemplo veamos la funcin externa de MATLAB linspace que est en el directorio de Matlab.

    Aqu si el usuario llama a la funcin linspace con solo dos argumentos de entrada ej linspace(0,10) hacel numero de puntos (n) igual a 100 por defecto. Si son tres los argumentos de entrada el tercerargumento determina el nmero de puntos (n).9. Las funciones tienen su propio espacio de trabajo, totalmente independiente del espacio de trabajo deMATLAB. La nica conexin entre las variables dentro de una funcin y el espacio de trabajo de MATLABson las variables de entrada y salida de la funcin. Si una funcin cambia el valor de alguna variable deentrada dentro de ella, el cambio solo se experimenta dentro de la funcin y no afecta el valor de lavariable en el espacio de trabajo de MATLAB. Las variables creadas dentro de una funcin existen slodentro del espacio de trabajo de la funcin, adems su existencia es temporal mientras se ejecuta lafuncin despus desaparecen. De esta forma no es posible almacenar valores en el espacio de trabajo deuna funcin de una llamada a la otra (Sin embargo, el uso de variables globales como se describe msabajo permite esta posibilidad)10. Si una variable predefinida, por ej. pi es redefinida en el espacio de trabajo de MATLAB el cambio nose observa en el espacio de trabajo de la funcin. Lo mismo ocurre a la inversa: el cambio de una variabledentro 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 dela funcin, pero sus valores son accesibles desde dentro de la funcin. Sin embargo si alguno de losvalores de las variables de entrada son modificadas, entonces este nuevo valor es copiado en el espaciode trabajo de la funcin.12. Si las variables son declaradas previamente como global (globales) entonces pueden ser compartidascon otras funciones, con el espacio de trabajo de MATLAB, o en llamadas recursivas a si mismas. Paratener acceso a una variable global dentro de una funcin o en el espacio de trabajo de MATLAB, la variabledebe ser declarada global dentro de cada espacio de trabajo deseado. Un ejemplo del uso de variablesglobales puede encontrarse en las funciones de MATLAB tic y toc, que juntas funcionan como uncronmetro.

    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, :.% Copyright (c) 1984-94 by The MathWorks, Inc.if nargin == 2n = 100;endy = [d1+(0:n-2)*(d2-d1)/(n-1) d2];

    function tic%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.% TIC simply stores CLOCK in a global variable.global TICTOCTICTOC = clock;

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 23 de 27

    En la funcin tic la variable TICTOC es declarada como global, y su valor es definido por una llamada a lafuncin clock .Despus en la funcin toc la variable TICTOC tambin se declara como global, dando a tocacceso al valor almacenado en TICTOC. Usando este valor, toc calcula el tiempo desde que la funcin ticfue ejecutada. Es importante remarcar que la variable TICTOC existe en los espacios de trabajo de tic ytoc y no en el espacio de trabajo de MATLAB.13. Como una sugerencia de programacin, el uso de variables globales debe ser evitado cuando seaposible. Sin embargo, si son usadas, se sugiere que los nombres de las variables globales sean largos, enmaysculas y que empiecen con el nombre del archivo-M donde aparecen por primera vez. As es posibleevitar interacciones indeseables entre variables globales. Por ejemplo si la variable TICTOC hubiera sidodeclarada global por otra funcin o por el espacio de trabajo de MATLAB, entonces su valor podra habersido 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 leespacio de trabajo de la funcin no el de MATLAB. Los archivos-M llamados desde una funcin no soncompilados en memoria con la funcin, sino que son abiertos y ejecutados lnea por lnea cada vez. Estoquiere 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 cuandoencuentran el comando return . El comando return permite terminar una funcin sin llegar al final delarchivo.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.

    function t = toc%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 TICTOCif nargout < 1elapsed_time = etime(clock,TICTOC)elset = etime(clock,TICTOC);end

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 24 de 27

    33..66.. OOPPEERRAACCIIOONNEESS RREELLAACCIIOONNAALLEESS YY LLOOGGIICCAASSAdems de la operaciones aritmticas tradicionales, MATLAB permite utilizar operacionesrelacionales y lgicas. Si se tiene experiencia con otros lenguajes de programacin, se tendra que estarfamiliarizado con los operadores relacionales y lgicos. El propsito de dichos operadores es realizar unadeterminada accin en base a condiciones verdadero/falso. El uso ms importante de esta capacidad esel control del flujo o el orden de ejecucin de los comandos de MATLAB (generalmente dentro de unarchivo-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 cualquiernmero distinto de cero como verdadero e igual a cero como falso. Como salida para todas las expresionesrelacionales y lgicas se toma a uno para verdadero y cero para falso.

    Operadores RelacionalesLos operadores relacionales de MATLAB incluyen todas las comparaciones comunes.>== MMaayyoorr oo iigguuaall qquuee== == IIgguuaall aa~~== DDiissttiinnttoo ddee ((nnoo iigguuaall aa))las variables lgicas Verdadero y Falso se consideran:0 falso1 VerdaderoPor ejemplo: >> A=5;>> B=5;>> C=3;>> A == Cans =0>> A == Bans =1>>

    Las operaciones con operadores relacionales se pueden usar para comparar dos arreglos del mismotamao o para comparar un arreglo y un escalar, en el ltimo caso el escalar es comparado con todos loselementos del arreglo y el resultado tiene el mismo tamao del arreglo.Ejemplo I:

    pdfM

    achin

    e tria

    l versi

    on

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 25 de 27

    Ejemplo II. a=1:9,b=9-aa =1 2 3 4 5 6 7 8 9b =8 7 6 5 4 3 2 1 0 c=a>4c =0 0 0 0 1 1 1 1 1 d=(a==b)d =0 0 0 0 0 0 0 0 0En el primer caso devuelve un 1 en todas las comparaciones donde los elementos de a son mayores que 4y 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 doscosas distintas: = = compara dos variables y devuelve unos donde son iguales y ceros donde nolo son; en cambio = se utiliza para designar un nmero o la salida de una operacin a unavariable. b=b + (b==0)*epsb =Columns 1 through 78.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000Columns 8 through 91.0000 0.0000Es un ejemplo de como reemplazar los elementos nulos de un arreglo con la variable especial de MATLABeps, que es aproximadamente 2.2 e-16. Esta expresin es usada a veces para evitar la divisin por cero: x=(-3:3)/3x =-1.0000 -0.6667 -0.3333 0 0.3333 0.6667 1.0000 sin(x)./xWarning: Divide by zeroans =0.8415 0.9276 0.9816 NaN 0.9816 0.9276 0.8415Al calcular la funcin sin(x)/x primero se nos da un alerta porque el cuarto dato es cero. Ya que sin(0)/0es una indeterminacin, MATLAB devuelve como cuarto elemento la expresin NaN (que quiere decir Nota Number). Intentando nuevamente, despus de reemplazar el cero con el nmero eps: x=x+(x==0)*eps; sin(x)./xans =0.8415 0.9276 0.9816 1.0000 0.9816 0.9276 0.8415Vemos ahora que el valor de sin(x)x para x tendiendo a cero nos da la respuesta correcta que es igual a 1.

    Operadores LgicosLos operadores lgicos nos permiten combinar o negar las expresiones relacinales. Los operadoreslgicos son: & AND| OR~ NOTEjemplo I:pd

    fMac

    hine t

    rial ve

    rsion

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 26 de 27

    Ejemplo II: a=1:9,b=9-aa =1 2 3 4 5 6 7 8 9b =8 7 6 5 4 3 2 1 0 c=a>4c =0 0 0 0 1 1 1 1 1 c=~(a>4)c =1 1 1 1 0 0 0 0 0 c=(a>2)&(a < >=

  • Universidad Tecnolgica NacionalFacultad Regional CrdobaSecretara Acadmica Ing. Mecnica Cs. Bsicas

    Capacitacin Docente coordinadora por Ing. Carrizo Blanca R. Pgina 27 de 27

    33..77.. NNMMEERROOSS CCOOMMPPLLEEJJOOSSAlgunos lenguajes de programacin necesitan un manejo especial para operar con nmeroscomplejos, en MATLAB no es necesario => Las operaciones se escriben de la misma manera que en losnmeros 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 imaginariac1 =1.0000 - 2.0000i c1=1-2j %la j tambin se utiliza como parte imaginariac1 =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)*ic4 =2.0000 - 0.4794i

    En los ejemplos han sido usados los valores por defecto de MATLAB i j= = -1 para formar la parteimaginaria. En el ltimo ejemplo es necesario utilizar el smbolo de multiplicacin ya que la expresinsin(.5)i no tiene significado para MATLAB. Esta notacin slo funciona con nmeros simples como en losprimeros ejemplos y no con expresiones elaboradas.Otros ejemplos: c5=(c1+c2)/c3 %de los datos anterioresc5 =-7.7782 - 4.9497i p_im_al_cuadrado=i^2 %esto tiene que ser -1p_im_al_cuadrado =-1.0000 + 0.0000i p_im_al_cuadrado=real(p_im_al_cuadrado) %sacamos la parte imaginariap_im_al_cuadrado =-1En general las operaciones con nmeros complejos dan como resultado nmeros complejos. Si se da laoperacin 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 ysi se trata de un nmero real, el valor absoluto. c1c1 =1.0000 - 2.0000i mag_c1=abs(c1)mag_c1 =2.2361As 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/pideg_c1 =-63.4349La 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

    pdfM

    achin

    e tria

    l versi

    on