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

Matlab: Conceptos Bsicos

Primera y Segunda Reunin

SERVICIOS DE EXTENSIN UNIVERSIDAD NACIONAL DE COLOMBIA FACULTAD DE MINAS SEDE MEDELLN Julio de 2009 Autor: Esteban Jimnez Meja

Matlab: Conceptos Bsicos


Primera y Segunda Reunin

ENTORNO DE TRABAJO MATLAB


Matlab Desktop
Esta es la ventana completa de entorno, la ms general del programa, en ella estn organizadas todas los componentes de MATLAB segn usted como usuario las organice. Para organizar el entorno de trabajo de MATLAB (Desktop Layout), se usa el men: Desktop Desktop Layout All existen varias configuraciones predeterminadas, pero usted puede generar su propia configuracin y guardarla, mediante el men: Desktop Save Layout Cuando usted guarda un Desktop Layout este queda almacenado en el men para su seleccin. Entre las componentes ms utilizadas dentro del entorno de trabajo de MATLAB (Matlab Desktop) se encuentran: Command Window Workspace Current Directory Editor/Debbuger Array Editor

Command Wi ndow
Matlab: Conceptos Bsicos | Julio de 2009

Esta es la ventana fundamental de MATLAB, se asemeja al SHELL de las distribuciones de Linux o a la consola MS DOS de Windows, en cuanto a su uso. Desde el Command Window se pueden ejecutar todas las funciones anteriormente programadas 1 el efecto de las mismas es inmediato. Cuando desde el Command Window se invoca una funcin su resultado es mostrado de manera posterior a la ejecucin de la misma y el Workspace se carga de las variables actuales usadas por la funcin2. Al igual que las consolas (el uso del Tab despus de escribir las letras iniciales del nombre de la funcin, MATLAB despliega el conjunto de las posibles funciones que usted est pensando usar, esto le da agilidad a la hora de escribir) mediante el Command Window puede moverse entre ficheros con el comando cd usando una direccin
1

Esto depende fundamentalmente del Current Directory y del Search Path. Ms adelante se dar una breve explicacin de esto. 2 Slo cuando las variables de las funciones no mueren al finalizar la ejecucin de las mismas.

local o global, incluso si su deseo es devolverse puede hacer uso de cd .. tal como si de un Shell se tratase. Puede adems ver el contenido de las carpetas mediante el comando ls. Para identificar en cual directorio se encuentra situado, basta con teclear pwd. Es posible tambin crear subdirectorios mediante el comando mkdir y eliminarlos mediante el comando rmdir. Se sugiere al lector probar dichos comandos con el objetivo de que interiorice la aplicacin de los mismos y gane habilidad para su implementacin.

Para una personalizacin del Command Window se puede usar el siguiente men: File Preferences Command Window

Work Sp ace
Se traduce al espaol como el espacio de trabajo, el Workspace funciona bsicamente como la interfaz entre el usuario y lo que existe actualmente en la memoria o pila (stack) de trabajo. En este complemento del entorno de trabajo usted puede observar el nombre de la variable, el tipo, el valor, el peso en Bytes y otra cantidad de opciones que pueden ser sacadas dando click derecho sobre la barra de ttulo y escogiendo otras propiedades que le pueden ser tiles como la media, la moda la desviacin estndar, etc (slo para versiones superiores a la 7.0). Puede adems preguntar por las variables presentes en el Workspace desde un comando en el Command Window, dicho comando es whos o who. Las salidas de ambos comandos se refieren a las variables existentes en el Workspace, la diferencia radica en que whos es ms detallada que who. Para ver sus efectos y diferencias use ambas funciones. Desde el Workspace se puede acceder a las variables y editarlas. La edicin se hace mediante la ventana del Editor Array (Editor de Vectores o matrices). Esta ventana es una interfaz grfica con los mismos perfiles de una tabla en Excel, incluso hacer copias de datos desde Excel es muy fcil e intuitivo de lograr mediante el uso esta ventana. Cuando usted ha modificado una variable mediante el Editor Array, no hay necesidad de guardar los cambios, pues es un enlace directo con la variable. Sin embargo es posible guardarla como un archivo para ser leda luego3 de cerrar incluso todo el programa, la extensin con la que queda dicha variable es *.mat que es un tipo de archivo propio de MATLAB. Las variables que son creadas por funciones que retornan el control a la funcin invocadora, existen en el Workspace mientras la funcin existe, de lo contrario mueren junto con la funcin a menos de que dichas variables hayan sido denominadas persistentes ( persistent).

Funci n di ary
La funcin diary, es una implementacin que tiene el MATLAB para generar un archivo de texto plano con las funciones y los resultados de las mismas dentro del command Window. El uso inmediato que se le da a esta funcin es el de poder conservar dentro de un archivo aparte todos los resultados obtenidos de un script o funcin en particular.

Ms adelante se especificar como hacer lecturas y escrituras en archivos o ficheros segn su tipo.

Matlab: Conceptos Bsicos | Julio de 2009

La forma de invocar el comando se presenta a continuacin: >>diary Nombre.txt >>diary on Hasta este punto ha creado dentro del current directory un archivo llamado Nombre.txt, este archivo es un texto plano, el cual comenzar a guardar todo lo que ocurra en el comand window. Cualquier funcin que usted ingrese a partir de ahora ser registrada en dicho archivo. Vale aclarar que si usted desea acceder al archivo, debe de terminar la ejecucin del diary de lo contrario establecer un error de peticin a un recurso que est siendo utilizado por el sistema (en este caso MATLAB). Para detener el registro de los datos se usa el comando: >>diary off Puede ahora entrar a revisar el contenido de su archivo Nombre.txt y verificar que efectivamente se registraron todas las entradas y salidas del command window, hasta que usted detuvo el proceso de registro.

Current Di rectory y el Search Path


Este es uno de los complementos ms importantes a la hora de usar archivos *.m programados anteriormente. El Current Directory es la raz actual de donde est corriendo MATLAB; El Search Path es algo ms general, all se encuentran los directorios de la aplicacin como tal, incluyendo los comandos de los TOOLBOXES y las funciones privadas del usuario o de aplicaciones que corren junto a MATLAB. No necesariamente el Current Directory debe de estar incluido en el Search Path, de ah la importancia que toma determinar de manera inicial cuales van a ser las funciones a invocar y en donde estn ubicadas pues cuando se va a ejecutar una funcin, MATLAB sigue los siguientes pasos: 1. Verifica que el nombre de la funcin que se est invocando (si de verdad es una funcin), no coincida con el de una variable existente en el Workspace, de ser as MATLAB terminar por tomar el valor de dicha variable. 2. Recurre a los directorios propios de las funciones Matlab. De ser as usa la funcin intrnseca que encuentra en dicho directorio. 3. Mira si es una funcin o Sub funcin privada del usuario. 4. Recurre al Current Directory para encontrar archivos *.mex,*.dll y *.m. De ser as es prioridad el archivo *.mex, le sigue el *.dll y finalmente el *.m (que es realmente la funcin como tal). 5. Se dirige al Search Path, y busca en cada directorio anexado al mismo, cuando el nombre de la funcin coincide con alguno de los archivos que all existen la bsqueda de la funcin termina y se ejecuta la que se encontr. Lo anterior nos permitir ubicar funciones segn nuestras preferencias, incluso usar funciones con el mismo nombre. Si usted quiere adherir un directorio al Search Path, puede hacerlo a travs de la interfaz destinada para esto, incluso puede ubicar el directorio en la posicin que prefiera. Por lo general los directorios agregados son puestos al principio. (Tenga en cuenta que si usted usa el mismo nombre de una funcin existente para su funcin, es posible que est inhibiendo (ocultando) una funcin predeterminada de MATLAB o alguno de sus toolboxes): File Set Path El comando para desplegar en el Command Window los directorios del Search Path es: path.

Matlab: Conceptos Bsicos | Julio de 2009

Funci ones Pri vadas


Esta cualidad aplicada a una funcin permite que las funciones declaradas como privadas, sean usadas nicamente por funciones que conozcan su condicin de privadas. Esto es muy til para cuando se quieren usar funciones propias con nombres existentes, adems que dan la posibilidad de manejar encapsulamiento. Para dar la cualidad de privada a una funcin, sta debe de estar ubicada en un subdirectorio llamado prvate. Toda funcin que quiera usar funciones de dicho subdirectorio debe de estar ubicada en el path inmediatamente superior. Si otra funcin que no est ubicada dentro de dicho path, invoca una funcin con el nombre de la funcin privada que ya se haba creado, esta no ser llamada pues se incumple la condicin.

Subfunci ones
Las subfunciones tienen la cualidad de que son definidas en el mismo archivo .m de la funcin principal. Esto es muy comn dentro de los lenguajes de programacin orientada a objetos como el C++. Matlab adopta la cualidad de que la subfuncin est existiendo dentro del mismo espacio de la funcin principal lo que le da velocidad a la hora de la ejecucin.
Matlab: Conceptos Bsicos | Julio de 2009

MATLAB Executabl es
Estos son los denominados archivos *.mex, estos archivos son los que permiten hacer la interfaz desde el MATLAB a subrutinas de C/C++, subrutinas que usted mismo ha debido crear previamente. El efecto de poder asociar dentro de las funciones de MATLAB algunas funciones en C/C++ permiten la mejora de los tiempos de ejecucin de cada uno de los programas que usted corra y adems permite el uso de funciones ya programadas dentro del C/C++ sin tener que hacer la migracin a los *.m reconocidos por el compilador de MATLAB. Ms adelante dentro del curso, se retomar esto de manera muy breve y se harn algunos ejemplos que sirvan de ilustracin a cmo se debera de hacer a la hora de la implementacin.

P ersonal i zaci n del arranque del Matl ab


Como una de las aplicaciones que tiene el conocimiento del Search Path y la forma en cmo MATLAB hace la bsqueda de las funciones que son invocadas, se propone la modificacin de los archivos startup.m y el archivo finish.m. Dichos archivos son los que ejecuta el MATLAB cuando se hace el inicio de sesin y cuando se hace la finalizacin del programa. La siguiente actividad presentar una forma en cmo usted puede personalizar el inicio de sesin y la finalizacin de la misma de su versin de MATLAB. 1. Como primer paso, debe de crear una carpeta dentro de su disco duro, la ubicacin de la misma no interesa y ser por medio de la inclusin de dicho directorio en el PATH, lo que permita su buen funcionamiento.

La forma en cmo usted puede crear una carpeta y asociarla directamente como Current Directory, es como se muestra en la figura anterior, se da clic sobre los puntos suspensivos del espacio para mostrar el Current Directory, luego se selecciona un directorio cualquiera y se genera una nueva carpeta (si usted as lo desea, porque tambin puede usar una existente). Para finalizar le da clic en Aceptar. 2. Hasta el momento simplemente asoci al Current Directory una nueva direccin, donde usted ubicar las funciones a modificar para el arranque, en este ejemplo se llama Inicializacin, por lo que la direccin en disco, para este ejemplo en particular queda como: C:\Documents and Settings\Esteban J\Mis documentos\MATLAB\Inicializacion.
Matlab: Conceptos Bsicos | Julio de 2009

3. Debe de generar los archivos para su posterior modificacin, entonces use el men FileNewM-File

4. Guarde el primer archivo como startup.m, mediante el comando File Save As startup.m 5. Genere un nuevo M-File y gurdelo como finish.m, mediante el comando FileSave As finish.m 6. Agregue la carpeta Inicializacin al Path de MATLAB, al hacer esto obligar a MATLAB al iniciar que resuelva todo lo que dice el script all programado. Para esto siga los pasos: 6.1. FileSet PathAdd Folder 6.2. Busque la carpeta Inicializacin 6.3. Note que es agregada al tope de la lista del path

% Este ser el archivo con el que iniciar MATLAB cuando usted haga uso del % programa: tiempo=clock; horas=tiempo(4); minutos=tiempo(5); segundos=tiempo(6);

msjeUser=warndlg('Acaba de Iniciar el Bienvenido','Iniciacin Personalizada del Matlab'); uiwait(msjeUser)

MATLAB,

sea

Matlab: Conceptos Bsicos | Julio de 2009

Debe de escribir los siguientes comandos en el archivo startup.m

msgbox(sprintf('Ha iniciado sesin a las %i horas, %i minutos, %i segundos',horas,minutos,segundos),'Tiempo de Inicio de Sesin','Warn','modal') disp('Puede Comenzar a escribir los comandos a continuacin')

El script que acaba de escribir dentro de su archivo stratup.m hace lo siguiente: Inicailmente genera un vector tiempo, que es resultado del comando del MATLAB clock, este comando devuelve un vector cuyas componentes son respectivamente: [Ao Mes Da Hora Minuto Segundo], Como se le ha asociado una variable llamada tiempo, al resultado de dicha funcin, al acceder en las lneas siguientes a cada una de las componentes del vector, se estn extrayendo en nuevas variables los resultados correspondientes a las horas, minutos y segundos. El siguiente comando se presenta como una ayuda dentro de la programacin comn, para la comunicacin con el usuario. La funcin warndlg, devuelve una ventana de aviso, en la que el usuario es informado de algo. Esta funcin tiene caractersticas predeterminadas, y se usa de la forma:
warndlg('Informacin para el usuario','Ttulo de la barra de Ventana')

Para la implementacin mostrada en el cdigo del startup.m el resultado es el mostrado en la figura anterior. Para el caso del programa implementado se asocia la salida del comando a una variable:
msjeUser=warndlg('Acaba de Iniciar el Bienvenido','Iniciacin Personalizada del Matlab'); uiwait(msjeUser) MATLAB, sea

Luego se le anexa una funcin llamada uiwait, esto se hace con el objetivo de poder tener control sobre la respuesta del usuario, es decir, cuando se acompaa de una variable y se le aplica un uiwait a dicha variable se garantiza que el programa para su ejecucin hasta que el usuario responda. La siguiente lnea es otra aplicacin asociada con los mensajes de usuario, el msgbox, funciona de una manera un poco ms libre que el warndlg, para este comando es posible asociar otros conos, la forma como se usa es:
msgbox('Informacin para el usuario', 'Ttulo de la barra de Ventana', 'Icono')

Matlab: Conceptos Bsicos | Julio de 2009

Los conos pueden ser imgenes cargadas dentro del programa4, sin embargo existen varios predeterminados. Los conos pueden ser: warn cono de Advertencia error cono de error

Ms adelante en el curso cuando se haga el manejo de imgenes, se cargar dentro de uno de estos mensajes una imagen en particular.

help cono de Ayuda Para el caso de la aplicacin existe una funcin adicional que ser tratada posteriormente con ms detalle, la funcin sprintf, esta funcin permite la devolucin de cadena de caracteres y el uso de variables externas.
msgbox(sprintf('Ha iniciado sesin a las %i horas, %i minutos, %i segundos',horas,minutos,segundos),'Tiempo de Inicio de Sesin','Warn','modal')

El msgbox slo admite cadena de caracteres, por lo que se hace uso de la funcin sprintf para que pueda servir para cualquier variable. Los %i dentro de la funcin, se refieren a que las variables que all aparecern son de tipo entero. Continuando con el anlisis de la funcin como fue implementada se tiene:
msgbox(sprintf('Ha iniciado sesin a las %i horas, %i minutos, %i segundos',horas,minutos,segundos),'Tiempo de Inicio de Sesin','Warn','modal')

El ttulo ser Tiempo de inicio de sesin, el cono ser de advertencia (se propone al lector usar los dems conos por defecto para que adquiera habilidad y los recuerde posteriormente). La ltima propiedad ingresada modal, garantiza que el usuario obtendr el control nicamente despus de que resuelva la inquietud planteada por el msgbox. A diferencia de la asociacin con el uiwait, en este no se detiene la ejecucin del programa. Como resultado se debe de obtener algo como:

Finalmente se usa un disp., este comando simplemente muestra en el Command Window un resultado de lo deseado.
disp('Puede Comenzar a escribir los comandos a continuacin') Matlab: Conceptos Bsicos | Julio de 2009

Para el caso anterior el argumento e una cadena de caracteres y el resultado es:

P ersonal i zaci n l a Fi nali zaci n de Sesi n

Se propone que el lector implemente comandos iguales a los utilizados en el startup.m para la programacin del finish.m. Pero modifique los conos de los mensajes por los mencionados anteriormente y que estn definidos por defecto dentro del MATLAB. Para ver los resultados completos debe de finalizar e iniciar MATLAB.

Coment ari os Fi nal es a l a R euni n


Puede encontrar toda la documentacin del programa y cada una de sus versiones en: www.mathworks.com/support

Matlab: Conceptos Bsicos | Julio de 2009

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