SlideShare una empresa de Scribd logo
Jackeline Quinde Torres
MATLAB Es el nombre abreviado de “MATrix LABoratory”. MATLAB es un programa para realizar cálculos numéricos con  vectores  y  matrices . Como caso particular puede también trabajar con números escalares −tanto reales como complejoscon cadenas de caracteres y con otras estructuras de información más complejas. Una de las capacidades más atrac tivas es la de realizar una amplia variedad de  gráficos  en dos y tres dimensiones. MATLAB tiene también un lenguaje de programación propio. Este manual hace referencia a la versión 7.0 de este programa (también llamada  release  14), aparecida a mediados de 2004. Jackeline Quinde Torres
MATLAB se puede arrancar como cualquier otra aplicación de Windows, clicando dos veces en el icono correspondiente en el escritorio o por medio del menú Inicio). Al arrancar MATLAB se abre una ventana similar a la mostrada en la Figura 1. Ésta es la vista que se obtiene eligiendo la opción Desktop Layout/Default, en el menú View. Como esta configuración puede ser cambiada fácilmen- te por el usuario, es posible que en muchos casos concretos lo que aparezca sea muy diferente. En caso, una vista similar se puede conseguir con el citado comando  View/Desktop La- yout/Default. Esta ventana inicial requiere unas primeras explicaciones. cualquier  Jackeline Quinde Torres MATLAB dispone de un código básico y de varias librerías especializadas ( toolboxes ). En estos apuntes se hará referencia exclusiva al código básico.
MATLAB dispone de un código básico y de varias librerías especializadas ( toolboxes ). En estos apuntes se hará referencia exclusiva al código básico. MATLAB se puede arrancar como cualquier otra aplicación de  Windows , dando clic dos veces en el icono correspondiente en el escritorio o por medio del menú  Inicio ). Al arrancar MATLAB se abre una ventana similar a la mostrada en la Figura 1. Ésta es la vista que se obtiene eligiendo la opción  Desktop Layout/Default , en el menú  View . Como esta configuración puede ser cambiada fácilmente por el usuario, es posible que en muchos casos concretos lo que aparezca sea muy diferente. En cualquier caso, una vista similar se puede conseguir con el citado comando  View/Desktop Layout/Default . Esta ventana inicial requiere unas primeras explicaciones. Jackeline Quinde Torres
Start, con una función análoga a la del botón Inicio de Windows. Start da acceso inmediato a ciertas capacidades del programa. La Figura 2 muestra las posibilidades de Start/MATLAB, mientras que la Figura 3 muestra las opciones de Start/Desktop Tools, que permiten el acceso a las principales componentes o módulos de MA- TLAB.  El menú Desktop realiza un papel análogo al botón Start, dando acceso a los módulos o componentes de MATLAB que se tengan instalados. Jackeline Quinde Torres
Jackeline Quinde Torres Figura 2. Menú Start/MATLAB   Figura 3. Menú Start/Desktop Tools.
>> A=rand(6), B=inv(A), B*A A = 0.9501  0.4565  0.9218  0.4103  0.1389  0.0153 0.2311  0.0185  0.7382  0.8936  0.2028  0.7468 0.6068  0.8214  0.1763  0.0579  0.1987  0.4451 0.4860  0.4447  0.4057  0.3529  0.6038  0.9318 0.8913  0.6154  0.9355  0.8132  0.2722  0.4660 0.7621  0.7919  0.9169  0.0099  0.1988  0.4186 B = 5.7430  2.7510  3.6505  0.1513  -6.2170  -2.4143 -4.4170  -2.5266  -1.4681  -0.5742  5.3399  1.5631 -1.3917  -0.6076  -2.1058  -0.0857  1.5345  1.8561 -1.6896  -0.7576  -0.6076  -0.3681  3.1251  -0.6001 -3.6417  -4.6087  -4.7057  2.5299  6.1284  0.9044 2.7183  3.3088  2.9929  -0.1943  -5.1286  -0.6537 ans = 1.0000  0.0000  0  0.0000  0.0000  -0.0000 0.0000  1.0000  0.0000  0.0000  -0.0000  0.0000 0  0  1.0000  -0.0000  -0.0000  0.0000 0.0000  0  -0.0000  1.0000  -0.0000  0.0000 -0.0000  0.0000  -0.0000  -0.0000  1.0000  0.0000 -0.0000  -0.0000  -0.0000  -0.0000  -0.0000  1.0000 Jackeline Quinde Torres Para apreciar desde el principio la potencia de MATLAB, se puede comenzar por escribir en la Command Window la siguiente línea, a continuación del prompt. Al final hay que pulsar intro.
En realidad, en la línea de comandos anterior se han escrito tres instrucciones diferentes, separadas por comas. Como consecuencia, la respuesta del programa tiene tres partes también, cada una de ellas correspondiente a una de las instrucciones. Con la primera instrucción se define una matriz cuadrada (6×6) llamada A, cuyos elementos son números aleatorios entre cero y uno (aunque aparezcan sólo 4 cifras, han sido calculados con 16 cifras de precisión). En la segunda instrucción se define una matriz B que es igual a la inversa de A. Finalmente se ha multiplicado B por A, y se comprueba que el resultado es la matriz unidad2. Es con grandes matrices o grandes sistemas de ecuaciones como MATLAB obtiene toda la potencia del ordenador. Por ejemplo, las siguientes instrucciones permiten calcular la potencia de cálculo del ordenador en Megaflops (millones de operaciones aritméticas por segundo). En la primera línea se crean tres matrices de tamaño 1000×1000, las dos primeras con valores aleatorios y la tercera con valores cero. La segunda línea toma tiempos, realiza el producto de matrices, vuelve a tomar tiem- pos y calcula de modo aproximado el número de millones de operaciones realizadas. Jackeline Quinde Torres
En la figura se puede observar que se abre una nueva ventana en la que aparece representada la función sin(x). Esta figura tiene un título "Función seno(x)" y una cuadrícula o "grid". En realidad la línea anterior contiene también varias instruccio- nes separadas por comas o puntos y comas. En la primera se crea un vector x con 801 valores reales entre -4 y 4, separados por una centésima. A conti- nuación se crea un vector  y, cada uno de cuyos elementos es el seno del correspondiente elemento del vector x. Después se dibujan los valores de y en ordenadas frente a los de x en abscisas. Las dos últimas instrucciones establecen la cuadrícula y el título. Jackeline Quinde Torres
Para borrar todas las salidas ante- riores de MATLAB y dejar limpia la  Command  Window   se  pueden utilizar las funciones  clc  y  home . La función  clc  ( clear console ) eli- mina  todas  las  salidas  anteriores, mientras  que  home   las  mantiene, pero lleva el  prompt  (>> ) a la pri- mera línea de la ventana. Si se desea salir de MATLAB basta teclear  los  comandos  quit   o  exit , elegir  Exit  MATLAB en el menú  File  o utilizar cualquiera de los medios de terminar una aplicación en  Windows . Jackeline Quinde Torres
Uso de Help MATLAB 7.0 dispone de un excelente  Help  con el que se puede encontrar la información que se desee. La Figura 5 muestra las distintas opciones que aparecen en el menú  Help  de la ventana principal de la aplicación: Jackeline Quinde Torres
Full  Product  Family  Help ,  Se  abre  la ventana de la Figura 8, en la que se puede buscar  información  general  sobre  MA- TLAB o sobre otros productos de la familia a los que se tenga acceso. La forma de la ventana de ayuda es típica y común con otros niveles de ayuda. La mayor parte de las  páginas  de  ayuda  están  en  formatoHTML . Jackeline Quinde Torres
MATLAB Help.  Se abre la ventana en la que se puede buscar ayuda general sobre MATLAB o sobre la función o el concepto que se desee. La porta- da de esta ayuda tiene tres capítulos principales:  Functions , que contiene información de referencia sobre las funciones por orden alfabético o por categorías;  Handle Graphics , que permite acceder a información concreta sobre las distintas propiedades de los objetos gráficos;  Documentation Set , que da acceso a versiones completas de los manuales del programa en formato de pantalla fácilmente navegable Jackeline Quinde Torres
Algunas páginas web sobre MATLAB.   Jackeline Quinde Torres
Using the Desktop Se abre una ventana de ayuda con un formato similar a las de las Figuras anteriores con información detallada sobre cómo utilizar y configurar el entorno de desarrollo o  Desktop . Las distintas herramientas disponibles se describen sucesivamente. Cada página dispone de flechas y enlaces que permiten ir a la página siguiente o volver a la anterior. Es posible también imprimir aquellas páginas que se deseee consultar o archivar sobre papel. Una caracte- rística muy importante es la posibilidad de organizar las ventanas con gran flexibilidad, agru- pándolas o independizándoles según los propios gustos o deseos. Jackeline Quinde Torres
Using the Command Window . Esta opción del menú  Help  da acceso a la información necesaria para aprovechar las capacidades de la  Command Window , que es el corazón de MATLAB. Web Resources . La ¡Error! No se encuentra el origen de la referencia. muestra algunas direcciones de Internet con información interesante sobre MATLAB. Todas ellas corresponden a distintas secciones de la web de The Mathworks (la empresa que desarrolla y comercializa MA- TLAB), cuya página de inicio se muestra en primer lugar. Check for Updates . MATLAB se conecta con The Mathworks y comprueba si has versiones más recientes de los productos instalados.   Jackeline Quinde Torres
Demos . Se abre una ventana como la mostrada en la Figura 7 que da acceso a un buen número de ejemplos resueltos con MATLAB, cuyos resultados se presentan gráficamente de diversas formas. Es muy interesante recorrer estos ejemplos para hacerse idea de las posibilidades del programa, tanto en cálculo como en gráficos. Es asimismo muy instructivo analizar los ficheros *.m  de los ejemplos de características similares a las de la aplicación de se desea desarrollar. Además, de una forma muy inmediata, es posible también recurrir al  Help  desde la línea de coman- dos de la  Command Window . Se aconseja practicar un poco al respecto. Por ejemplo, obsérvese la respuesta a los siguientes usos del comando  help : >> help >> help lang Jackeline Quinde Torres
MATLAB dispone de una ayuda muy completa y accesible, estructurada en varios niveles (línea de comandos en la  Command Window , ventana  Help , y manuales en formato PDF), con la que es muy importante estar familiarizado, porque hasta los más expertos programadores tienen que acudir a ella con una cierta frecuencia. Jackeline Quinde Torres
El entorno de trabajo de MATLAB 1. El  Escritorio de Matlab  ( Matlab Desktop ), que es la ventana o contenedor de máximo nivel en la que se pueden situar ( to dock ) las demás componentes. 2. Las componentes individuales, orientadas a tareas concretas, entre las que se puede citar: a. La ventana de comandos ( Command Window ), b. La ventana histórica de comandos ( Command History ), c. El espacio de trabajo ( Workspace ), d. La plataforma de lanzamiento ( Launch Pad ), e. El directorio actual ( Current Directory ), f. La ventana de ayuda ( Help ) g. El editor de ficheros y depurador de errores ( Editor&Debugger ), h. El editor de vectores y matrices ( Array Editor ). i. La ventana que permite estudiar cómo se emplea el tiempo de ejecución ( Profiler ). Jackeline Quinde Torres
EL ESCRITORIO DE MATLAB (MATLAB DESKTOP ) El  Matlab Desktop  es la ventana más general de la aplicación. El resto de las ventanas o componentes citadas pueden alojarse en la  Matlab Desktop  o ejecutarse como ventanas independientes. A su vez, los componentes alojados en el  Matlab Desktop  pueden aparecer como subventanas independientes o como pestañas dentro de una de las sub-ventanas. MATLAB 7.0 ofrece una gran flexibilidad al respecto y es cada usuario quien decide en qué forma desea utilizar la aplicación . Jackeline Quinde Torres
Jackeline Quinde Torres MATLAB DESKTOP
Además del menú mostrado en la Figura 11, que cambia en algunos detalles según cual sea la ventana activa, el usuario puede configurar el  Matlab Desktop  por medio del  ratón  mediante algunas operaciones como las siguientes: 1. Colocando el ratón sobre los bordes intermedios de las subventanas y arrastrando puede modificar su tamaño en la forma que desee. 2. Dando clic sobre la barra de título de la subventana activa y arrastrando (Figura 12) se puede llevar a otra parte del  Desktop , obteniéndose el resultado mostrado en la Figura 13. 3. Si todas las ventanas se van seleccionando sucesivamente y se elige la correspondiente opción  Undock...  en el menú  View , se podría obtener una configuración como la mostrada en la Figura 14, en la que todas las ventanas son independientes y aparecen separadas en la barra de tareas. 4. Finalmente, si se parte de la configuración  por defecto y cada uno de los componentes se arrastra sobre la  Command Window  se puede obtener una configuración como la mostrada en la Figura 15, en la que todos los componentes abiertos aparecen como pestañas alternativas en una ventana única. Jackeline Quinde Torres
Jackeline Quinde Torres
Preferencias: Formatos de salida y de otras opciones de MATLAB MATLAB 7.0 dispone de un cuadro de diálogo desde el que se establecen casi todas las opciones que el usuario puede determinar por su cuenta. Este cuadro de diálogo se abre con el comando  Preferences  del menú  File . En la Figura 23 se aparece el cuadro de diálogo  Preferences  mostrando todas las posibilidades que ofrece en el menú de la izquierda: en total son 24 cuadros de diálogo diferentes. La Figura 24 muestra el que permite elegir los colores generales del código . Jackeline Quinde Torres
Respecto a los formatos numéricos con que MATLAB  muestra los resultados (recuérdese que siempre calcula con doble precisión, es decir con unas 16 cifras decimales equivalentes), las posibilidades existentes se muestran en la lista desplegable de la Figura 25 y son las siguientes: short coma fija con 4 decimales ( defecto ) long coma fija con 15 cifras hexadecimales short g notación científica o decimal, dependiendo del valor long e notación científica con 15 decimales long g notación científica o decimal, dependiendo del valor racional expresa los números racionales como cocientes de enteros Jackeline Quinde Torres
OPERACIONES CON MATRICES Y VECTORES Como en casi todos los lenguajes de programación, en MATLAB las matrices y vectores son  variables  que tienen  nombres . Ya se verá luego con más detalle las reglas que deben cumplir estos nombres. Por el momento se sugiere que se utilicen letras  mayúsculas para matrices  y letras  minúsculas para vectores y escalares  (MATLAB no exige esto, pero puede resultar útil). Jackeline Quinde Torres
Para definir una matriz  no hace falta declararlas o establecer de antemano su tamaño  (de hecho, se puede definir un tamaño y cambiarlo posteriormente). MATLAB determina el número de filas y de columnas en función del número de elementos que se proporcionan (o se utilizan).  Las matrices se definen o introducen por filas 6; los elementos de una misma fila están separados por  blancos  o  comas , mientras que las filas están separadas por pulsaciones  intro  o por caracteres  punto y coma (;). Por ejemplo, el siguiente comando define una matriz A de dimensión (3×3): >> A=[1 2 3; 4 5 6; 7 8 9] La respuesta del programa es la siguiente: A = 1  2  3 4  5  6 7  8  9 Jackeline Quinde Torres
Los operadores anteriores se pueden aplicar también de modo  mixto , es decir con un operando escalar y otro matricial. En este caso la operación con el escalar se aplica a cada uno de los elementos de la matriz. Considérese el siguiente ejemplo: 7 En términos de C++ se podría decir que son operadores  sobrecargados , es decir, con varios significados distintos dependiendo del contexto, es decir, de sus operandos. >> A=[1 2; 3 4] A = 1  2 3  4 >> A*2 ans = 2  4 6  8 >> A-4 ans = -3  -2 -1  0 Jackeline Quinde Torres
Tipos de datos Ya se ha dicho que MATLAB es un programa preparado para trabajar con vectores y matrices. Como caso particular también trabaja con variables escalares (matrices de dimensión 1). MATLAB trabaja siempre en  doble precisión , es decir guardando cada dato en 8 bytes, con unas 15 cifras decimales exactas. Ya se verá más adelante que  también puede trabajar con cadenas de caracteres ( strings ) y, desde la versión 5.0, también con otros tipos de datos:  Matrices de más dos dimensiones ,  matrices dispersas ,  vectores y matrices de celdas ,  estructuras  y  clases y objetos . Algunos de estos tipos de datos más avanzados se verán en la última parte de este manual . Jackeline Quinde Torres
OTROS TIPOS DE VARIABLES: INTEGER, FLOAT Y LOGICA MATLAB permite crear variables enteras con 1, 2, 4 y 8 bytes (8, 16, 32 y 64 bits). A su vez, estas variables pueden tener signo o no tenerlo. Las variables con signo representan números en intervalos "casi" simétricos respecto al 0; las variables sin signo representan número no negativos, desde el 0 al número máximo. Jackeline Quinde Torres
Las funciones intmin('int64' ) con variables enteras de 64 Las funciones intmin('int64') e intmax('int64') permiten por ejemplo saber el valor del entero más pequeño y más grande (en valor algebraico) que puede formarse bits: >> disp([intmin('int64'), intmax('int64')]) -9223372036854775808  9223372036854775807 Jackeline Quinde Torres
Los operadores lógicos de MATLAB & and  (función equivalente: and(A,B)). Se evalúan siempre ambos operandos, y el resultado es  true  sólo si ambos son  true . && and  breve: si el primer operando es  false  ya no se evalúa el segundo, pues el resul- tado final ya no puede ser más que  false . | or  (función equivalente: or(A,B)). Se evalúan siempre ambos operandos, y el re- sultado es  false  sólo si ambos son  false . || or  breve: si el primer operando es  true  ya no se evalúa el segundo, pues el resulta- do final no puede ser más que  true . ~ negación lógica  (función equivalente: not(A)) xor(A,B) realiza un "or exclusivo", es decir, devuelve 0 en el caso en que ambos sean 1 ó ambos sean 0. Los operadores lógicos se combinan con los relacionales para poder comprobar el cumplimiento de condiciones múltiples. Más adelante se verán otros ejemplos y ciertas funciones de las que dispone MATLAB para facilitar la aplicación de estos operadores a vectores y matrices. Jackeline Quinde Torres
FUNCIONES DE LIBRERÍA MATLAB tiene un gran número de funciones incorporadas. Algunas son  funciones intrínsecas , esto es, funciones incorporadas en el propio código ejecutable del programa. Estas funciones son particularmente rápidas y eficientes. Existen además funciones definidas en ficheros  *.m  y  *.mex12  que vienen con el propio programa o que han sido aportadas por usuarios del mismo. Estas funciones extienden en gran manera las posibilidades del programa. MATLAB dispone también de ficheros  *.p , que son los ficheros  *.m  precompilados con la función pcode . Se verán más adelante. Recuérdese que para que MATLAB encuentre una determinada función de usuario el correspondiente  fichero-M  debe estar en el  directorio actual  o en uno de los directorios del  search path . Jackeline Quinde Torres
OTROS TIPOS DE DATOS DE MATLAB   En los capítulos precedentes se ha visto la “especialidad” de MATLAB: trabajar con vectores y matrices. En este capítulo se va a ver que MATLAB puede también trabajar con otros tipos de da- tos: 1. Conjuntos o cadenas de caracteres, fundamentales en cualquier lenguaje de programación. 2. Hipermatrices, o matrices de más de dos dimensiones. 3. Estructuras, o agrupaciones bajo un mismo nombre de datos de naturaleza diferente. 4. Vectores o matrices de celdas (cell arrays), que son vectores o matrices cuyos elementos pueden ser cualquier otro tipo de dato. 5. Matrices dispersas o matrices dispersas, que son matrices que pueden ser de muy gran tamaño con la mayor parte de sus elementos cero. Jackeline Quinde Torres
PROGRAMACIÓN DE MATLAB Como ya se ha dicho varias veces incluso con algún ejemplo MATLAB es una aplicación que se puede programar muy fácilmente. De todas formas, como lenguaje de programación pronto verá que no tiene tantas posibilidades como otros lenguajes (ni tan complicadas...). Se comenzará viendo las bifurcaciones y bucles, y la lectura y escritura interactiva de variables, que son los elementos básicos de cualquier programa de una cierta complejidad. Jackeline Quinde Torres
Bifurcaciones y bucles   MATLAB posee un lenguaje de programación que como cualquier otro lenguaje dispone de sentencias para realizar  bifurcaciones  y  bucles . Las  bifurcaciones  permiten realizar una u otra operación según se cumpla o no una determinada condición .  Jackeline Quinde Torres
Entrada y salida de datos Ya se ha visto una forma de realizar la entrada interactiva de datos por medio de la función  input  y de imprimir resultados por medio de la función  disp . Ahora se van a ver otras formas de intercambiar datos con otras aplicaciones. Jackeline Quinde Torres
Llamada a comandos del sistema operativo y a otras funciones externas Algunos comandos de MATLAB realizan la misma función que los comandos análogos del sistema operativo MS-DOS, con lo que se puede evitar utilizar el operador (!). Algunos de estos comandos son los siguientes: dir contenido del directorio actual what  ficheros *.m en el directorio actual delete filename borra el fichero llamado filename mkdir(nd) crea un sub-directorio con el nombre nd copyfile(sc, dst) copia el fichero sc en el fichero dst type file.txt imprime por la pantalla el contenido del fichero de texto file.txt cd cambiar de directorio activo pwd muestra el path del directorio actual which func localiza una función llamada func lookfor palabra busca palabra en todas las primeras líneas de los ficheros *.m Jackeline Quinde Torres
Funciones de función Como ya se ha comentado al hablar de las referencias de función, en MATLAB existen funciones a las que hay que pasar como argumento el nombre de otras funciones, para que puedan ser llamadas desde dicha función. Así sucede por ejemplo si se desea calcular la integral definida de una función, resolver una ecuación no lineal, o integrar numéricamente una ecuación diferencial ordinaria (problema de valor inicial). Estos serán los tres casos de gran importancia práctica que se van a ver a continuación. Se comenzará por medio de un ejemplo, utilizando una función llamada  prueba  que se va a definir en un fichero llamado  prueba .m . Jackeline Quinde Torres
INTERFACES DE MATLAB CON OTROS LENGUAJES Es posible llamar desde MATLAB a funciones programadas en C y en Fortran como si fueran funciones propias de MATLAB. De este modo, una función *.m de MATLAB puede ser sustituida por una función programada en C o en Fortran que se llama exactamente en la misma forma. Para que esto sea posible las funciones programadas en C y Fortran han de cumplir una serie de requisitos que se explican más adelante. Estas funciones se compilan y se generan librerías compartidas que son las denominadas funciones MEX. Las funciones MEX son funciones ejecutables "*.dll" ó "*.so" que pueden ser cargadas y ejecutadas por MATLAB de forma automática. Las funciones MEX tienen varias aplicaciones: Jackeline Quinde Torres
Las funciones MEX tienen una extensión diferente  en función de los sistemas operativos en que hayan sido generadas. En la siguiente tabla se puede ver la extensión que corresponde a cada sistema operativo. Jackeline Quinde Torres
NOTA : Conviene tener en cuenta que hasta la versión 7.1 de MATLAB la extensión de los ficheros MEX era ".dll". A partir de la versión 7.1 es ".mexw32". Esto quiere decir que los ficheros MEX generados por MATLAB 7.1 no podrán ser ejecutados por versiones anteriores. Para mantener la compatibilidad se debe utilizar la opción -output con la extensión ".dll" en el nombre del fichero. Jackeline Quinde Torres
El siguiente programa de MATLAB utiliza las funciones  tic  y  toc  para medir los tiempos Jackeline Quinde Torres % fichero pruebaMEX.m clear all n=50000; % Se determina la eficiencia del producto vectorial de Matlab tic s=0; for i=1:n a=rand(3,1); b=rand(3,1); c=cross(a,b); s=s+norm(c); end toc % ahora con un programa *.m propio tic s=0; for i=1:n a=rand(3,1); b=rand(3,1); c=prodVect(a,b); s=s+norm(c); end toc % ahora con un programa propio en C tic s=0; for i=1:n a=rand(3,1); b=rand(3,1); c=prodVectC(a,b); s=s+norm(c); end toc disp('Ya he terminado')
GRÁFICOS BIDIMENSIONALES MATLAB dispone de cinco funciones básicas para crear gráficos 2-D. Estas funciones se diferencian principalmente por el  tipo de escala  que utilizan en los ejes de abscisas y de ordenadas. Estas cuatro funciones son las siguientes: plot() crea un gráfico a partir de vectores y/o columnas de matrices, con escalas lineal es sobre ambos ejes plotyy() dibuja dos funciones con dos escalas diferentes para las ordenadas, una a la derecha y otra a la izquierda de la figura. loglog() ídem con escala logarítmica en ambos ejes semilogx() ídem con escala lineal en el eje de ordenadas y logarítmica en el eje de abscisas semilogy() ídem con escala lineal en el eje de abscisas y logarítmica en el eje de ordenadas Jackeline Quinde Torres
FUNCIÓN  PLOT   Esta es la función clave de todos los gráficos 2-D en MATLAB. Ya se ha dicho que el elemento básico de los gráficos bidimensionales es el  vector . Se utilizan también cadenas de 1, 2 ó 3 caracteres para indicar  colores  y  tipos de línea . La función  pot.() , en sus diversas variantes, no hace otra cosa que dibujar vectores. Un ejemplo muy sencillo de esta función, en el que se le pasa un único vector como argumento, es el siguiente: >> x=[1 3 2 4 5 3] x = 1  3  2  4  5  3 >> plot(x) Jackeline Quinde Torres
Jackeline Quinde Torres El resultado de este comando es que se abre una ventana mostrando el gráfico de la Figura 38. Por defecto, los distintos puntos del gráfico se unen con una línea continua. También por defecto, el color que se utiliza para la primera línea es el azul. Cuando a la función  pot.()  se le pasa un único vector real como argumento, dicha función dibuja en ordenadas el valor de los  n  elementos del vector frente a los índices 1, 2, ...  n  del mismo en abscisas. Más adelante se verá que si el vector es complejo,el funcionamiento es bastante diferente.
Las ventanas gráficas de MATLAB   Jackeline Quinde Torres Editor de propiedades de Figure. . Editor de mapa de colores.   Menús y barras de las ventanas gráficas.
GRÁFICOS TRIDIMENSIONALES Quizás sea ésta una de las características de MATLAB que más admiración despierta entre los usuarios no técnicos (cualquier alumno de ingeniería sabe que hay ciertas operaciones algebraicas  como la descomposición de valores singulares, sin ir más lejos que tienen dificultades muy superiores, aunque "luzcan" menos ). Jackeline Quinde Torres .
A continuación se va a realizar un ejemplo sencillo  consistente en dibujar un  cubo . Para ello se creará un fichero llamado  cubo.m  que contenga las aristas correspondientes, definidas mediante los vértices del cubo como una línea poligonal continua (obsérvese que algunas aristas se dibujan dos veces). El fichero  cubo.m  define una matriz A cuyas columnas son las coordenadas de los vértices, y cuyas filas son las coordenadas x, y y z de los mismos. A continuación incluye la llamada a la función  plot3 : % fichero cubo. close all A=[0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0]; plot3(A(1,:)',A(2,:)',A(3,:)') Jackeline Quinde Torres
Jackeline Quinde Torres Como ejemplo, se va a volver a dibujar la función  picos  (la correspondiente al fichero test3d.m  visto previamente). Créese ahora el fichero  picos.m  con las siguientes sentencias: x=[-3:0.2:3]; y=x; [X,Y]=meshgrid(x,y); Z=test3d(X,Y); figure(gcf), mesh(Z), pause(5), surf(Z)
Jackeline Quinde Torres
MAPAS DE COLORES   Un  mapa de colores  se define como una matriz de tres columnas, cada una de las cuales contiene un valor entre 0 y 1, que representa la intensidad de uno de los colores fundamentales: R (red o rojo), G (green o verde) y B (blue o azul). La longitud por defecto de los mapas de colores de MATLAB es 64, es decir, cada mapa de color contiene 64 colores. Esta longitud puede modificarse como luego se verá. Jackeline Quinde Torres
ELEMENTOS GENERALES: EJES, PUNTOS DE VISTA, LÍNEAS OCULTAS Las funciones  surf  y  mesh  dibujan funciones tridimensionales en perspectiva. La localización del punto de vista o dirección de observación se puede hacer mediante la función  view , que tiene la siguiente forma: view(azimut, elev) donde  azimut  es el ángulo de rotación de un plano horizontal, medido sobre el eje z a partir del eje x en sentido antihorario, y  elev  es el ángulo de elevación respecto al plano (x-y). Ambos ángulos se miden  en grados , y pueden tomar valores positivos y negativos (sus valores por defecto son -37.5 y 30). También se puede definir la dirección del punto de vista mediante las tres coordenadas cartesianas de un vector (sólo se tiene en cuenta la dirección): view([xd,yd,zd]) Jackeline Quinde Torres

Más contenido relacionado

PPT
diapositivas de matlab
PPTX
andrea
PPT
PPTX
Control JTable con Base de Datos
PDF
PDF
Matlab r2006b
PDF
Guia rapida de matlab (comandos basicos, graficacion y programacion)
diapositivas de matlab
andrea
Control JTable con Base de Datos
Matlab r2006b
Guia rapida de matlab (comandos basicos, graficacion y programacion)

La actualidad más candente (18)

PDF
Guia70
PPT
Diapositivas matlab
DOCX
Ici rtu-unidad 3- tema 10
PDF
Copiade documento(2)
DOCX
PDF
Wiioa programacionysimulacionavanzada
PDF
Curso matlab
PDF
MATLAB Tutorial
PPTX
Lección 1
DOC
Informe matlab
PDF
08. Procesador De Textos. Writer Para Las Matematicas
PPTX
Control JTable con base de datos
PPTX
Control jtable con base de datos
DOC
Archivo slide share 10
Guia70
Diapositivas matlab
Ici rtu-unidad 3- tema 10
Copiade documento(2)
Wiioa programacionysimulacionavanzada
Curso matlab
MATLAB Tutorial
Lección 1
Informe matlab
08. Procesador De Textos. Writer Para Las Matematicas
Control JTable con base de datos
Control jtable con base de datos
Archivo slide share 10
Publicidad

Destacado (6)

DOC
فن إدارة الوقت
PPT
Tarjetas de video historia manuel
PPSX
Londres vicens
DOCX
Final intro
PPTX
Tarjetas de video
PDF
Catering menus fall 2014
فن إدارة الوقت
Tarjetas de video historia manuel
Londres vicens
Final intro
Tarjetas de video
Catering menus fall 2014
Publicidad

Similar a Matlab (20)

PPT
diapositivas de matlab
PDF
Tema 1
PPTX
Matlab
PDF
Manual de uso en MATLAB.pdf
PDF
PDF
Manualmv1
PDF
Curso matlab básico semestre 1 - 2017
PDF
Tutorial matlab
PDF
Manual matlab R2009a
PDF
PDF
Guia para usar matlab
PPTX
Introduccion y operaciones basicas (matlab)
PDF
Apuntes matlab
PDF
Apuntes matlab
PDF
Introduccion a matlab
PDF
Practica1 Matlab Operadores Básicos
PDF
Intro a matlab
PDF
Manual basico de matlab
PPTX
Diapositivas matlab
PDF
resumen matlab
diapositivas de matlab
Tema 1
Matlab
Manual de uso en MATLAB.pdf
Manualmv1
Curso matlab básico semestre 1 - 2017
Tutorial matlab
Manual matlab R2009a
Guia para usar matlab
Introduccion y operaciones basicas (matlab)
Apuntes matlab
Apuntes matlab
Introduccion a matlab
Practica1 Matlab Operadores Básicos
Intro a matlab
Manual basico de matlab
Diapositivas matlab
resumen matlab

Último (20)

PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
Calidad desde el Docente y la mejora continua .pdf
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
Presentación de Redes de Datos modelo osi
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
taller de informática - LEY DE OHM
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PDF
Estrategia de apoyo tecnología grado 9-3
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
Estrategia de apoyo tecnología miguel angel solis
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PDF
CyberOps Associate - Cisco Networking Academy
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Propuesta BKP servidores con Acronis1.pptx
Calidad desde el Docente y la mejora continua .pdf
Influencia-del-uso-de-redes-sociales.pdf
Plantilla para Diseño de Narrativas Transmedia.pdf
Power Point Nicolás Carrasco (disertación Roblox).pptx
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Presentación de Redes de Datos modelo osi
Zarate Quispe Alex aldayir aplicaciones de internet .docx
taller de informática - LEY DE OHM
El-Gobierno-Electrónico-En-El-Estado-Bolivia
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Estrategia de apoyo tecnología grado 9-3
REDES INFORMATICAS REDES INFORMATICAS.pptx
historia_web de la creacion de un navegador_presentacion.pptx
Estrategia de apoyo tecnología miguel angel solis
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
CyberOps Associate - Cisco Networking Academy
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx

Matlab

  • 2. MATLAB Es el nombre abreviado de “MATrix LABoratory”. MATLAB es un programa para realizar cálculos numéricos con vectores y matrices . Como caso particular puede también trabajar con números escalares −tanto reales como complejoscon cadenas de caracteres y con otras estructuras de información más complejas. Una de las capacidades más atrac tivas es la de realizar una amplia variedad de gráficos en dos y tres dimensiones. MATLAB tiene también un lenguaje de programación propio. Este manual hace referencia a la versión 7.0 de este programa (también llamada release 14), aparecida a mediados de 2004. Jackeline Quinde Torres
  • 3. MATLAB se puede arrancar como cualquier otra aplicación de Windows, clicando dos veces en el icono correspondiente en el escritorio o por medio del menú Inicio). Al arrancar MATLAB se abre una ventana similar a la mostrada en la Figura 1. Ésta es la vista que se obtiene eligiendo la opción Desktop Layout/Default, en el menú View. Como esta configuración puede ser cambiada fácilmen- te por el usuario, es posible que en muchos casos concretos lo que aparezca sea muy diferente. En caso, una vista similar se puede conseguir con el citado comando View/Desktop La- yout/Default. Esta ventana inicial requiere unas primeras explicaciones. cualquier Jackeline Quinde Torres MATLAB dispone de un código básico y de varias librerías especializadas ( toolboxes ). En estos apuntes se hará referencia exclusiva al código básico.
  • 4. MATLAB dispone de un código básico y de varias librerías especializadas ( toolboxes ). En estos apuntes se hará referencia exclusiva al código básico. MATLAB se puede arrancar como cualquier otra aplicación de Windows , dando clic dos veces en el icono correspondiente en el escritorio o por medio del menú Inicio ). Al arrancar MATLAB se abre una ventana similar a la mostrada en la Figura 1. Ésta es la vista que se obtiene eligiendo la opción Desktop Layout/Default , en el menú View . Como esta configuración puede ser cambiada fácilmente por el usuario, es posible que en muchos casos concretos lo que aparezca sea muy diferente. En cualquier caso, una vista similar se puede conseguir con el citado comando View/Desktop Layout/Default . Esta ventana inicial requiere unas primeras explicaciones. Jackeline Quinde Torres
  • 5. Start, con una función análoga a la del botón Inicio de Windows. Start da acceso inmediato a ciertas capacidades del programa. La Figura 2 muestra las posibilidades de Start/MATLAB, mientras que la Figura 3 muestra las opciones de Start/Desktop Tools, que permiten el acceso a las principales componentes o módulos de MA- TLAB. El menú Desktop realiza un papel análogo al botón Start, dando acceso a los módulos o componentes de MATLAB que se tengan instalados. Jackeline Quinde Torres
  • 6. Jackeline Quinde Torres Figura 2. Menú Start/MATLAB Figura 3. Menú Start/Desktop Tools.
  • 7. >> A=rand(6), B=inv(A), B*A A = 0.9501 0.4565 0.9218 0.4103 0.1389 0.0153 0.2311 0.0185 0.7382 0.8936 0.2028 0.7468 0.6068 0.8214 0.1763 0.0579 0.1987 0.4451 0.4860 0.4447 0.4057 0.3529 0.6038 0.9318 0.8913 0.6154 0.9355 0.8132 0.2722 0.4660 0.7621 0.7919 0.9169 0.0099 0.1988 0.4186 B = 5.7430 2.7510 3.6505 0.1513 -6.2170 -2.4143 -4.4170 -2.5266 -1.4681 -0.5742 5.3399 1.5631 -1.3917 -0.6076 -2.1058 -0.0857 1.5345 1.8561 -1.6896 -0.7576 -0.6076 -0.3681 3.1251 -0.6001 -3.6417 -4.6087 -4.7057 2.5299 6.1284 0.9044 2.7183 3.3088 2.9929 -0.1943 -5.1286 -0.6537 ans = 1.0000 0.0000 0 0.0000 0.0000 -0.0000 0.0000 1.0000 0.0000 0.0000 -0.0000 0.0000 0 0 1.0000 -0.0000 -0.0000 0.0000 0.0000 0 -0.0000 1.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 -0.0000 1.0000 0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 1.0000 Jackeline Quinde Torres Para apreciar desde el principio la potencia de MATLAB, se puede comenzar por escribir en la Command Window la siguiente línea, a continuación del prompt. Al final hay que pulsar intro.
  • 8. En realidad, en la línea de comandos anterior se han escrito tres instrucciones diferentes, separadas por comas. Como consecuencia, la respuesta del programa tiene tres partes también, cada una de ellas correspondiente a una de las instrucciones. Con la primera instrucción se define una matriz cuadrada (6×6) llamada A, cuyos elementos son números aleatorios entre cero y uno (aunque aparezcan sólo 4 cifras, han sido calculados con 16 cifras de precisión). En la segunda instrucción se define una matriz B que es igual a la inversa de A. Finalmente se ha multiplicado B por A, y se comprueba que el resultado es la matriz unidad2. Es con grandes matrices o grandes sistemas de ecuaciones como MATLAB obtiene toda la potencia del ordenador. Por ejemplo, las siguientes instrucciones permiten calcular la potencia de cálculo del ordenador en Megaflops (millones de operaciones aritméticas por segundo). En la primera línea se crean tres matrices de tamaño 1000×1000, las dos primeras con valores aleatorios y la tercera con valores cero. La segunda línea toma tiempos, realiza el producto de matrices, vuelve a tomar tiem- pos y calcula de modo aproximado el número de millones de operaciones realizadas. Jackeline Quinde Torres
  • 9. En la figura se puede observar que se abre una nueva ventana en la que aparece representada la función sin(x). Esta figura tiene un título "Función seno(x)" y una cuadrícula o "grid". En realidad la línea anterior contiene también varias instruccio- nes separadas por comas o puntos y comas. En la primera se crea un vector x con 801 valores reales entre -4 y 4, separados por una centésima. A conti- nuación se crea un vector y, cada uno de cuyos elementos es el seno del correspondiente elemento del vector x. Después se dibujan los valores de y en ordenadas frente a los de x en abscisas. Las dos últimas instrucciones establecen la cuadrícula y el título. Jackeline Quinde Torres
  • 10. Para borrar todas las salidas ante- riores de MATLAB y dejar limpia la Command Window se pueden utilizar las funciones clc y home . La función clc ( clear console ) eli- mina todas las salidas anteriores, mientras que home las mantiene, pero lleva el prompt (>> ) a la pri- mera línea de la ventana. Si se desea salir de MATLAB basta teclear los comandos quit o exit , elegir Exit MATLAB en el menú File o utilizar cualquiera de los medios de terminar una aplicación en Windows . Jackeline Quinde Torres
  • 11. Uso de Help MATLAB 7.0 dispone de un excelente Help con el que se puede encontrar la información que se desee. La Figura 5 muestra las distintas opciones que aparecen en el menú Help de la ventana principal de la aplicación: Jackeline Quinde Torres
  • 12. Full Product Family Help , Se abre la ventana de la Figura 8, en la que se puede buscar información general sobre MA- TLAB o sobre otros productos de la familia a los que se tenga acceso. La forma de la ventana de ayuda es típica y común con otros niveles de ayuda. La mayor parte de las páginas de ayuda están en formatoHTML . Jackeline Quinde Torres
  • 13. MATLAB Help. Se abre la ventana en la que se puede buscar ayuda general sobre MATLAB o sobre la función o el concepto que se desee. La porta- da de esta ayuda tiene tres capítulos principales: Functions , que contiene información de referencia sobre las funciones por orden alfabético o por categorías; Handle Graphics , que permite acceder a información concreta sobre las distintas propiedades de los objetos gráficos; Documentation Set , que da acceso a versiones completas de los manuales del programa en formato de pantalla fácilmente navegable Jackeline Quinde Torres
  • 14. Algunas páginas web sobre MATLAB. Jackeline Quinde Torres
  • 15. Using the Desktop Se abre una ventana de ayuda con un formato similar a las de las Figuras anteriores con información detallada sobre cómo utilizar y configurar el entorno de desarrollo o Desktop . Las distintas herramientas disponibles se describen sucesivamente. Cada página dispone de flechas y enlaces que permiten ir a la página siguiente o volver a la anterior. Es posible también imprimir aquellas páginas que se deseee consultar o archivar sobre papel. Una caracte- rística muy importante es la posibilidad de organizar las ventanas con gran flexibilidad, agru- pándolas o independizándoles según los propios gustos o deseos. Jackeline Quinde Torres
  • 16. Using the Command Window . Esta opción del menú Help da acceso a la información necesaria para aprovechar las capacidades de la Command Window , que es el corazón de MATLAB. Web Resources . La ¡Error! No se encuentra el origen de la referencia. muestra algunas direcciones de Internet con información interesante sobre MATLAB. Todas ellas corresponden a distintas secciones de la web de The Mathworks (la empresa que desarrolla y comercializa MA- TLAB), cuya página de inicio se muestra en primer lugar. Check for Updates . MATLAB se conecta con The Mathworks y comprueba si has versiones más recientes de los productos instalados. Jackeline Quinde Torres
  • 17. Demos . Se abre una ventana como la mostrada en la Figura 7 que da acceso a un buen número de ejemplos resueltos con MATLAB, cuyos resultados se presentan gráficamente de diversas formas. Es muy interesante recorrer estos ejemplos para hacerse idea de las posibilidades del programa, tanto en cálculo como en gráficos. Es asimismo muy instructivo analizar los ficheros *.m de los ejemplos de características similares a las de la aplicación de se desea desarrollar. Además, de una forma muy inmediata, es posible también recurrir al Help desde la línea de coman- dos de la Command Window . Se aconseja practicar un poco al respecto. Por ejemplo, obsérvese la respuesta a los siguientes usos del comando help : >> help >> help lang Jackeline Quinde Torres
  • 18. MATLAB dispone de una ayuda muy completa y accesible, estructurada en varios niveles (línea de comandos en la Command Window , ventana Help , y manuales en formato PDF), con la que es muy importante estar familiarizado, porque hasta los más expertos programadores tienen que acudir a ella con una cierta frecuencia. Jackeline Quinde Torres
  • 19. El entorno de trabajo de MATLAB 1. El Escritorio de Matlab ( Matlab Desktop ), que es la ventana o contenedor de máximo nivel en la que se pueden situar ( to dock ) las demás componentes. 2. Las componentes individuales, orientadas a tareas concretas, entre las que se puede citar: a. La ventana de comandos ( Command Window ), b. La ventana histórica de comandos ( Command History ), c. El espacio de trabajo ( Workspace ), d. La plataforma de lanzamiento ( Launch Pad ), e. El directorio actual ( Current Directory ), f. La ventana de ayuda ( Help ) g. El editor de ficheros y depurador de errores ( Editor&Debugger ), h. El editor de vectores y matrices ( Array Editor ). i. La ventana que permite estudiar cómo se emplea el tiempo de ejecución ( Profiler ). Jackeline Quinde Torres
  • 20. EL ESCRITORIO DE MATLAB (MATLAB DESKTOP ) El Matlab Desktop es la ventana más general de la aplicación. El resto de las ventanas o componentes citadas pueden alojarse en la Matlab Desktop o ejecutarse como ventanas independientes. A su vez, los componentes alojados en el Matlab Desktop pueden aparecer como subventanas independientes o como pestañas dentro de una de las sub-ventanas. MATLAB 7.0 ofrece una gran flexibilidad al respecto y es cada usuario quien decide en qué forma desea utilizar la aplicación . Jackeline Quinde Torres
  • 21. Jackeline Quinde Torres MATLAB DESKTOP
  • 22. Además del menú mostrado en la Figura 11, que cambia en algunos detalles según cual sea la ventana activa, el usuario puede configurar el Matlab Desktop por medio del ratón mediante algunas operaciones como las siguientes: 1. Colocando el ratón sobre los bordes intermedios de las subventanas y arrastrando puede modificar su tamaño en la forma que desee. 2. Dando clic sobre la barra de título de la subventana activa y arrastrando (Figura 12) se puede llevar a otra parte del Desktop , obteniéndose el resultado mostrado en la Figura 13. 3. Si todas las ventanas se van seleccionando sucesivamente y se elige la correspondiente opción Undock... en el menú View , se podría obtener una configuración como la mostrada en la Figura 14, en la que todas las ventanas son independientes y aparecen separadas en la barra de tareas. 4. Finalmente, si se parte de la configuración por defecto y cada uno de los componentes se arrastra sobre la Command Window se puede obtener una configuración como la mostrada en la Figura 15, en la que todos los componentes abiertos aparecen como pestañas alternativas en una ventana única. Jackeline Quinde Torres
  • 24. Preferencias: Formatos de salida y de otras opciones de MATLAB MATLAB 7.0 dispone de un cuadro de diálogo desde el que se establecen casi todas las opciones que el usuario puede determinar por su cuenta. Este cuadro de diálogo se abre con el comando Preferences del menú File . En la Figura 23 se aparece el cuadro de diálogo Preferences mostrando todas las posibilidades que ofrece en el menú de la izquierda: en total son 24 cuadros de diálogo diferentes. La Figura 24 muestra el que permite elegir los colores generales del código . Jackeline Quinde Torres
  • 25. Respecto a los formatos numéricos con que MATLAB muestra los resultados (recuérdese que siempre calcula con doble precisión, es decir con unas 16 cifras decimales equivalentes), las posibilidades existentes se muestran en la lista desplegable de la Figura 25 y son las siguientes: short coma fija con 4 decimales ( defecto ) long coma fija con 15 cifras hexadecimales short g notación científica o decimal, dependiendo del valor long e notación científica con 15 decimales long g notación científica o decimal, dependiendo del valor racional expresa los números racionales como cocientes de enteros Jackeline Quinde Torres
  • 26. OPERACIONES CON MATRICES Y VECTORES Como en casi todos los lenguajes de programación, en MATLAB las matrices y vectores son variables que tienen nombres . Ya se verá luego con más detalle las reglas que deben cumplir estos nombres. Por el momento se sugiere que se utilicen letras mayúsculas para matrices y letras minúsculas para vectores y escalares (MATLAB no exige esto, pero puede resultar útil). Jackeline Quinde Torres
  • 27. Para definir una matriz no hace falta declararlas o establecer de antemano su tamaño (de hecho, se puede definir un tamaño y cambiarlo posteriormente). MATLAB determina el número de filas y de columnas en función del número de elementos que se proporcionan (o se utilizan). Las matrices se definen o introducen por filas 6; los elementos de una misma fila están separados por blancos o comas , mientras que las filas están separadas por pulsaciones intro o por caracteres punto y coma (;). Por ejemplo, el siguiente comando define una matriz A de dimensión (3×3): >> A=[1 2 3; 4 5 6; 7 8 9] La respuesta del programa es la siguiente: A = 1 2 3 4 5 6 7 8 9 Jackeline Quinde Torres
  • 28. Los operadores anteriores se pueden aplicar también de modo mixto , es decir con un operando escalar y otro matricial. En este caso la operación con el escalar se aplica a cada uno de los elementos de la matriz. Considérese el siguiente ejemplo: 7 En términos de C++ se podría decir que son operadores sobrecargados , es decir, con varios significados distintos dependiendo del contexto, es decir, de sus operandos. >> A=[1 2; 3 4] A = 1 2 3 4 >> A*2 ans = 2 4 6 8 >> A-4 ans = -3 -2 -1 0 Jackeline Quinde Torres
  • 29. Tipos de datos Ya se ha dicho que MATLAB es un programa preparado para trabajar con vectores y matrices. Como caso particular también trabaja con variables escalares (matrices de dimensión 1). MATLAB trabaja siempre en doble precisión , es decir guardando cada dato en 8 bytes, con unas 15 cifras decimales exactas. Ya se verá más adelante que también puede trabajar con cadenas de caracteres ( strings ) y, desde la versión 5.0, también con otros tipos de datos: Matrices de más dos dimensiones , matrices dispersas , vectores y matrices de celdas , estructuras y clases y objetos . Algunos de estos tipos de datos más avanzados se verán en la última parte de este manual . Jackeline Quinde Torres
  • 30. OTROS TIPOS DE VARIABLES: INTEGER, FLOAT Y LOGICA MATLAB permite crear variables enteras con 1, 2, 4 y 8 bytes (8, 16, 32 y 64 bits). A su vez, estas variables pueden tener signo o no tenerlo. Las variables con signo representan números en intervalos "casi" simétricos respecto al 0; las variables sin signo representan número no negativos, desde el 0 al número máximo. Jackeline Quinde Torres
  • 31. Las funciones intmin('int64' ) con variables enteras de 64 Las funciones intmin('int64') e intmax('int64') permiten por ejemplo saber el valor del entero más pequeño y más grande (en valor algebraico) que puede formarse bits: >> disp([intmin('int64'), intmax('int64')]) -9223372036854775808 9223372036854775807 Jackeline Quinde Torres
  • 32. Los operadores lógicos de MATLAB & and (función equivalente: and(A,B)). Se evalúan siempre ambos operandos, y el resultado es true sólo si ambos son true . && and breve: si el primer operando es false ya no se evalúa el segundo, pues el resul- tado final ya no puede ser más que false . | or (función equivalente: or(A,B)). Se evalúan siempre ambos operandos, y el re- sultado es false sólo si ambos son false . || or breve: si el primer operando es true ya no se evalúa el segundo, pues el resulta- do final no puede ser más que true . ~ negación lógica (función equivalente: not(A)) xor(A,B) realiza un "or exclusivo", es decir, devuelve 0 en el caso en que ambos sean 1 ó ambos sean 0. Los operadores lógicos se combinan con los relacionales para poder comprobar el cumplimiento de condiciones múltiples. Más adelante se verán otros ejemplos y ciertas funciones de las que dispone MATLAB para facilitar la aplicación de estos operadores a vectores y matrices. Jackeline Quinde Torres
  • 33. FUNCIONES DE LIBRERÍA MATLAB tiene un gran número de funciones incorporadas. Algunas son funciones intrínsecas , esto es, funciones incorporadas en el propio código ejecutable del programa. Estas funciones son particularmente rápidas y eficientes. Existen además funciones definidas en ficheros *.m y *.mex12 que vienen con el propio programa o que han sido aportadas por usuarios del mismo. Estas funciones extienden en gran manera las posibilidades del programa. MATLAB dispone también de ficheros *.p , que son los ficheros *.m precompilados con la función pcode . Se verán más adelante. Recuérdese que para que MATLAB encuentre una determinada función de usuario el correspondiente fichero-M debe estar en el directorio actual o en uno de los directorios del search path . Jackeline Quinde Torres
  • 34. OTROS TIPOS DE DATOS DE MATLAB En los capítulos precedentes se ha visto la “especialidad” de MATLAB: trabajar con vectores y matrices. En este capítulo se va a ver que MATLAB puede también trabajar con otros tipos de da- tos: 1. Conjuntos o cadenas de caracteres, fundamentales en cualquier lenguaje de programación. 2. Hipermatrices, o matrices de más de dos dimensiones. 3. Estructuras, o agrupaciones bajo un mismo nombre de datos de naturaleza diferente. 4. Vectores o matrices de celdas (cell arrays), que son vectores o matrices cuyos elementos pueden ser cualquier otro tipo de dato. 5. Matrices dispersas o matrices dispersas, que son matrices que pueden ser de muy gran tamaño con la mayor parte de sus elementos cero. Jackeline Quinde Torres
  • 35. PROGRAMACIÓN DE MATLAB Como ya se ha dicho varias veces incluso con algún ejemplo MATLAB es una aplicación que se puede programar muy fácilmente. De todas formas, como lenguaje de programación pronto verá que no tiene tantas posibilidades como otros lenguajes (ni tan complicadas...). Se comenzará viendo las bifurcaciones y bucles, y la lectura y escritura interactiva de variables, que son los elementos básicos de cualquier programa de una cierta complejidad. Jackeline Quinde Torres
  • 36. Bifurcaciones y bucles MATLAB posee un lenguaje de programación que como cualquier otro lenguaje dispone de sentencias para realizar bifurcaciones y bucles . Las bifurcaciones permiten realizar una u otra operación según se cumpla o no una determinada condición . Jackeline Quinde Torres
  • 37. Entrada y salida de datos Ya se ha visto una forma de realizar la entrada interactiva de datos por medio de la función input y de imprimir resultados por medio de la función disp . Ahora se van a ver otras formas de intercambiar datos con otras aplicaciones. Jackeline Quinde Torres
  • 38. Llamada a comandos del sistema operativo y a otras funciones externas Algunos comandos de MATLAB realizan la misma función que los comandos análogos del sistema operativo MS-DOS, con lo que se puede evitar utilizar el operador (!). Algunos de estos comandos son los siguientes: dir contenido del directorio actual what ficheros *.m en el directorio actual delete filename borra el fichero llamado filename mkdir(nd) crea un sub-directorio con el nombre nd copyfile(sc, dst) copia el fichero sc en el fichero dst type file.txt imprime por la pantalla el contenido del fichero de texto file.txt cd cambiar de directorio activo pwd muestra el path del directorio actual which func localiza una función llamada func lookfor palabra busca palabra en todas las primeras líneas de los ficheros *.m Jackeline Quinde Torres
  • 39. Funciones de función Como ya se ha comentado al hablar de las referencias de función, en MATLAB existen funciones a las que hay que pasar como argumento el nombre de otras funciones, para que puedan ser llamadas desde dicha función. Así sucede por ejemplo si se desea calcular la integral definida de una función, resolver una ecuación no lineal, o integrar numéricamente una ecuación diferencial ordinaria (problema de valor inicial). Estos serán los tres casos de gran importancia práctica que se van a ver a continuación. Se comenzará por medio de un ejemplo, utilizando una función llamada prueba que se va a definir en un fichero llamado prueba .m . Jackeline Quinde Torres
  • 40. INTERFACES DE MATLAB CON OTROS LENGUAJES Es posible llamar desde MATLAB a funciones programadas en C y en Fortran como si fueran funciones propias de MATLAB. De este modo, una función *.m de MATLAB puede ser sustituida por una función programada en C o en Fortran que se llama exactamente en la misma forma. Para que esto sea posible las funciones programadas en C y Fortran han de cumplir una serie de requisitos que se explican más adelante. Estas funciones se compilan y se generan librerías compartidas que son las denominadas funciones MEX. Las funciones MEX son funciones ejecutables "*.dll" ó "*.so" que pueden ser cargadas y ejecutadas por MATLAB de forma automática. Las funciones MEX tienen varias aplicaciones: Jackeline Quinde Torres
  • 41. Las funciones MEX tienen una extensión diferente en función de los sistemas operativos en que hayan sido generadas. En la siguiente tabla se puede ver la extensión que corresponde a cada sistema operativo. Jackeline Quinde Torres
  • 42. NOTA : Conviene tener en cuenta que hasta la versión 7.1 de MATLAB la extensión de los ficheros MEX era ".dll". A partir de la versión 7.1 es ".mexw32". Esto quiere decir que los ficheros MEX generados por MATLAB 7.1 no podrán ser ejecutados por versiones anteriores. Para mantener la compatibilidad se debe utilizar la opción -output con la extensión ".dll" en el nombre del fichero. Jackeline Quinde Torres
  • 43. El siguiente programa de MATLAB utiliza las funciones tic y toc para medir los tiempos Jackeline Quinde Torres % fichero pruebaMEX.m clear all n=50000; % Se determina la eficiencia del producto vectorial de Matlab tic s=0; for i=1:n a=rand(3,1); b=rand(3,1); c=cross(a,b); s=s+norm(c); end toc % ahora con un programa *.m propio tic s=0; for i=1:n a=rand(3,1); b=rand(3,1); c=prodVect(a,b); s=s+norm(c); end toc % ahora con un programa propio en C tic s=0; for i=1:n a=rand(3,1); b=rand(3,1); c=prodVectC(a,b); s=s+norm(c); end toc disp('Ya he terminado')
  • 44. GRÁFICOS BIDIMENSIONALES MATLAB dispone de cinco funciones básicas para crear gráficos 2-D. Estas funciones se diferencian principalmente por el tipo de escala que utilizan en los ejes de abscisas y de ordenadas. Estas cuatro funciones son las siguientes: plot() crea un gráfico a partir de vectores y/o columnas de matrices, con escalas lineal es sobre ambos ejes plotyy() dibuja dos funciones con dos escalas diferentes para las ordenadas, una a la derecha y otra a la izquierda de la figura. loglog() ídem con escala logarítmica en ambos ejes semilogx() ídem con escala lineal en el eje de ordenadas y logarítmica en el eje de abscisas semilogy() ídem con escala lineal en el eje de abscisas y logarítmica en el eje de ordenadas Jackeline Quinde Torres
  • 45. FUNCIÓN PLOT Esta es la función clave de todos los gráficos 2-D en MATLAB. Ya se ha dicho que el elemento básico de los gráficos bidimensionales es el vector . Se utilizan también cadenas de 1, 2 ó 3 caracteres para indicar colores y tipos de línea . La función pot.() , en sus diversas variantes, no hace otra cosa que dibujar vectores. Un ejemplo muy sencillo de esta función, en el que se le pasa un único vector como argumento, es el siguiente: >> x=[1 3 2 4 5 3] x = 1 3 2 4 5 3 >> plot(x) Jackeline Quinde Torres
  • 46. Jackeline Quinde Torres El resultado de este comando es que se abre una ventana mostrando el gráfico de la Figura 38. Por defecto, los distintos puntos del gráfico se unen con una línea continua. También por defecto, el color que se utiliza para la primera línea es el azul. Cuando a la función pot.() se le pasa un único vector real como argumento, dicha función dibuja en ordenadas el valor de los n elementos del vector frente a los índices 1, 2, ... n del mismo en abscisas. Más adelante se verá que si el vector es complejo,el funcionamiento es bastante diferente.
  • 47. Las ventanas gráficas de MATLAB Jackeline Quinde Torres Editor de propiedades de Figure. . Editor de mapa de colores. Menús y barras de las ventanas gráficas.
  • 48. GRÁFICOS TRIDIMENSIONALES Quizás sea ésta una de las características de MATLAB que más admiración despierta entre los usuarios no técnicos (cualquier alumno de ingeniería sabe que hay ciertas operaciones algebraicas como la descomposición de valores singulares, sin ir más lejos que tienen dificultades muy superiores, aunque "luzcan" menos ). Jackeline Quinde Torres .
  • 49. A continuación se va a realizar un ejemplo sencillo consistente en dibujar un cubo . Para ello se creará un fichero llamado cubo.m que contenga las aristas correspondientes, definidas mediante los vértices del cubo como una línea poligonal continua (obsérvese que algunas aristas se dibujan dos veces). El fichero cubo.m define una matriz A cuyas columnas son las coordenadas de los vértices, y cuyas filas son las coordenadas x, y y z de los mismos. A continuación incluye la llamada a la función plot3 : % fichero cubo. close all A=[0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0]; plot3(A(1,:)',A(2,:)',A(3,:)') Jackeline Quinde Torres
  • 50. Jackeline Quinde Torres Como ejemplo, se va a volver a dibujar la función picos (la correspondiente al fichero test3d.m visto previamente). Créese ahora el fichero picos.m con las siguientes sentencias: x=[-3:0.2:3]; y=x; [X,Y]=meshgrid(x,y); Z=test3d(X,Y); figure(gcf), mesh(Z), pause(5), surf(Z)
  • 52. MAPAS DE COLORES Un mapa de colores se define como una matriz de tres columnas, cada una de las cuales contiene un valor entre 0 y 1, que representa la intensidad de uno de los colores fundamentales: R (red o rojo), G (green o verde) y B (blue o azul). La longitud por defecto de los mapas de colores de MATLAB es 64, es decir, cada mapa de color contiene 64 colores. Esta longitud puede modificarse como luego se verá. Jackeline Quinde Torres
  • 53. ELEMENTOS GENERALES: EJES, PUNTOS DE VISTA, LÍNEAS OCULTAS Las funciones surf y mesh dibujan funciones tridimensionales en perspectiva. La localización del punto de vista o dirección de observación se puede hacer mediante la función view , que tiene la siguiente forma: view(azimut, elev) donde azimut es el ángulo de rotación de un plano horizontal, medido sobre el eje z a partir del eje x en sentido antihorario, y elev es el ángulo de elevación respecto al plano (x-y). Ambos ángulos se miden en grados , y pueden tomar valores positivos y negativos (sus valores por defecto son -37.5 y 30). También se puede definir la dirección del punto de vista mediante las tres coordenadas cartesianas de un vector (sólo se tiene en cuenta la dirección): view([xd,yd,zd]) Jackeline Quinde Torres