Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Manual Matlab, Apuntes de Cálculo

Asignatura: Càlcul II, Profesor: Jordi Bou, Carrera: Enginyeria Química, Universidad: UPC

Tipo: Apuntes

Antes del 2010

Subido el 02/03/2008

dserenade
dserenade 🇪🇸

4.5

(2)

1 documento

1 / 113

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Madrid
Octubre 2001
Javier García de Jalón, José Ignacio Rodríguez, Alfonso Brazález
Escuela Técnica Superior
de Ingenieros Industriales
Universidad Politécnica de Madrid
Aprenda Matlab 6.1
como si estuviera en primero
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Vista previa parcial del texto

¡Descarga Manual Matlab y más Apuntes en PDF de Cálculo solo en Docsity!

Madrid

Octubre 2001

Javier García de Jalón, José Ignacio Rodríguez, Alfonso Brazález

Escuela Técnica Superior

de Ingenieros Industriales

Universidad Politécnica de Madrid

Aprenda Matlab 6.

como si estuviera en primero

Aprenda Matlab 6.1 como

si estuviera en primero

Javier García de Jalón

José Ignacio Rodríguez

Alfonso Brazález

    1. PRÓLOGO ÍNDICE
    1. INTRODUCCIÓN
    • 2.1. Acerca de este Manual
    • 2.2. El programa MATLAB
    • 2.3. Uso del Help
    • 2.4. El entorno de trabajo de MATLAB
      • 2.4.1. El Escritorio de Matlab (Matlab Desktop)
      • 2.4.2. Command Window
      • 2.4.3. Launch Pad
      • 2.4.4. Command History Browser
      • 2.4.5. Current Directory Browser
      • 2.4.6. Path de MATLAB: establecer el camino de búsqueda ( search path )
      • 2.4.7. Workspace Browser y Array Editor
      • 2.4.8. El Editor/Debugger
    • 2.5. Preferencias: Formatos de salida y de otras opciones de MATLAB
    • 2.6. Ficheros matlabrc.m , startup.m y finish.m
    • 2.7. Guardar variables y estados de una sesión: Comandos save y load
    • 2.8. Guardar sesión y copiar salidas: Comando diary
    • 2.9. Líneas de comentarios
    • 2.10. Medida de tiempos y de esfuerzo de cálculo
    1. OPERACIONES CON MATRICES Y VECTORES
    • 3.1. Definición de matrices desde teclado
    • 3.2. Operaciones con matrices
    • 3.3. Tipos de datos
      • 3.3.1. Números reales de doble precisión
      • 3.3.2. Números complejos: Función complex
      • 3.3.3. Cadenas de caracteres
    • 3.4. Variables y expresiones matriciales
    • 3.5. Otras formas de definir matrices
      • 3.5.1. Tipos de matrices predefinidos
      • 3.5.2. Formación de una matriz a partir de otras
      • 3.5.3. Direccionamiento de vectores y matrices a partir de vectores
      • 3.5.4. Operador dos puntos (:)
      • 3.5.5. Matriz vacía A[ ]. Borrado de filas o columnas
      • 3.5.6. Definición de vectores y matrices a partir de un fichero
      • 3.5.7. Definición de vectores y matrices mediante funciones y declaraciones
    • 3.6. Operadores relacionales
    • 3.7. Operadores lógicos
    1. FUNCIONES DE LIBRERÍA
    • 4.1. Características generales de las funciones de MATLAB
    • 4.2. Equivalencia entre comandos y funciones
    • 4.3. Funciones matemáticas elementales que operan de modo escalar
    • 4.4. Funciones que actúan sobre vectores
    • 4.5. Funciones que actúan sobre matrices
      • 4.5.1. Funciones matriciales elementales:
      • 4.5.2. Funciones matriciales especiales
      • 4.5.3. Funciones de factorización y/o descomposición matricial
    • 4.6. Más sobre operadores relacionales con vectores y matrices
    • 4.7. Otras funciones que actúan sobre vectores y matrices
    • 4.8. Determinación de la fecha y la hora
    • 4.9. Funciones para cálculos con polinomios
    1. OTROS TIPOS DE DATOS DE MATLAB Aprenda Matlab 6.1 como si estuviera en Primero página ii
    • 5.1. Cadenas de caracteres
    • 5.2. Hipermatrices (arrays de más de dos dimensiones)
      • 5.2.1. Definición de hipermatrices
      • 5.2.2. Funciones que trabajan con hipermatrices
    • 5.3. Estructuras
      • 5.3.1. Creación de estructuras
      • 5.3.2. Funciones para operar con estructuras
    • 5.4. Vectores o matrices de celdas ( Cell Arrays )
      • 5.4.1. Creación de vectores y matrices de celdas
      • 5.4.2. Funciones para trabajar con vectores y matrices de celdas
      • 5.4.3. Conversión entre estructuras y vectores de celdas
    • 5.5. Matrices dispersas (sparse)
      • 5.5.1. Funciones para crear matrices dispersas (directorio sparfun)
      • 5.5.2. Operaciones con matrices dispersas
      • 5.5.3. Operaciones de álgebra lineal con matrices dispersas
      • 5.5.4. Operaciones con matrices dispersas
      • 5.5.5. Permutaciones de filas y/o columnas en matrices sparse
    • 5.6. Clases y objetos
    1. PROGRAMACIÓN DE MATLAB
    • 6.1. Bifurcaciones y bucles
      • 6.1.1. Sentencia if
      • 6.1.2. Sentencia switch
      • 6.1.3. Sentencia for
      • 6.1.4. Sentencia while
      • 6.1.5. Sentencia break
      • 6.1.6. Sentencia continue
      • 6.1.7. Sentencias try catch end
    • 6.2. Lectura y escritura interactiva de variables
      • 6.2.1. función input
      • 6.2.2. función disp
    • 6.3. Ficheros *.m
      • 6.3.1. Ficheros de comandos ( Scripts )
      • 6.3.2. Definición de funciones
      • 6.3.3. Sentencia return
      • 6.3.4. Funciones con número variable de argumentos
      • 6.3.5. Help para las funciones de usuario
      • 6.3.6. Help de directorios
      • 6.3.7. Sub-funciones
      • 6.3.8. Funciones privadas
      • 6.3.9. Funciones *.p
      • 6.3.10. Variables persistentes
      • 6.3.11. Variables globales
    • 6.4. Referencias de función ( function handles )
      • 6.4.1. Creación de referencias de función
      • 6.4.2. Evaluación de funciones mediante referencias
      • 6.4.3. Información contenida por una referencia de función. Funciones sobrecargadas
      • 6.4.4. Otros aspectos de las referencias de función
      • 6.4.5. Utilidad de las referencias de función
    • 6.5. Entrada y salida de datos
      • 6.5.1. Importar datos de otras aplicaciones
      • 6.5.2. Exportar datos a otras aplicaciones
    • 6.6. Lectura y escritura de ficheros
      • 6.6.1. Funciones fopen y fclose
      • 6.6.2. Funciones fscanf , sscanf , fprintf y sprintf
      • 6.6.3. Funciones fread y fwrite
      • 6.6.4. Ficheros de acceso directo
    • 6.7. Recomendaciones generales de programación
    • 6.8. Llamada a comandos del sistema operativo y a otras funciones externas Índice página iii
    • 6.9. Funciones de función
      • 6.9.1. Integración numérica de funciones
      • 6.9.2. Ecuaciones no lineales y optimización
      • 6.9.3. Integración numérica de ecuaciones diferenciales ordinarias
      • 6.9.4. Las funciones eval , evalc , feval y evalin
    • 6.10. Distribución del esfuerzo de cálculo: Profiler
    1. GRÁFICOS BIDIMENSIONALES
    • 7.1. Funciones gráficas 2D elementales
      • 7.1.1. Función plot
      • 7.1.2. Estilos de línea y marcadores en la función plot
      • 7.1.3. Añadir líneas a un gráfico ya existente
      • 7.1.4. Comando subplot
      • 7.1.5. Control de los ejes
      • 7.1.6. Función line()
    • 7.2. Control de ventanas gráficas: Función figure
    • 7.3. Otras funciones gráficas 2-D
      • 7.3.1. Función fplot
      • 7.3.2. Función fill para polígonos
    • 7.4. Entrada de puntos con el ratón
    • 7.5. Preparación de películas o "movies"
    • 7.6. Impresión de las figuras en impresora láser
    • 7.7. Las ventanas gráficas de MATLAB
    1. GRÁFICOS TRIDIMENSIONALES
    • 8.1. Tipos de funciones gráficas tridimensionales
      • 8.1.1. Dibujo de líneas: función plot3
      • 8.1.2. Dibujo de mallados: Funciones meshgrid , mesh y surf
      • 8.1.3. Dibujo de líneas de contorno: funciones contour y contour3
    • 8.2. Utilización del color en gráficos 3-D
      • 8.2.1. Mapas de colores
      • 8.2.2. Imágenes y gráficos en pseudocolor Función caxis
      • 8.2.3. Dibujo de superficies faceteadas
      • 8.2.4. Otras formas de las funciones mesh y surf
      • 8.2.5. Formas paramétricas de las funciones mesh , surf y pcolor
      • 8.2.6. Otras funciones gráficas 3D
      • 8.2.7. Elementos generales: ejes, puntos de vista, líneas ocultas,

Prólogo página 1

1. PRÓLOGO

La colección de manuales "Aprenda Informática como si estuviera en Primero" nació en la Escuela Superior de Ingenieros Industriales de San Sebastián (Universidad de Navarra) a lo largo de la década de 1990, como consecuencia de la impartición de las asignaturas Informática 1 e Informática 2, introducidas en el Plan de Estudios de 1993.

El objetivo de esta colección era facilitar a los alumnos de las asignaturas citadas unos apuntes breves y sencillos, fáciles de leer, que en unos casos ayudasen en el uso de las aplicaciones informáticas más habituales para un ingeniero industrial y en otros sirvieran de introducción a distintos lenguajes de programación.

Así pues, los destinatarios directos de estos apuntes eran los alumnos de la Escuela de Ingenieros Industriales de San Sebastián. Para facilitarles su uso, además de estar a la venta en el Servicio de Reprografía, se introdujeron versiones "online" en formato PDF (Portable Document Format, de Adobe), accesibles a través de las páginas Web de las mencionadas asignaturas. Los alumnos de cursos superiores y algunos profesores los utilizaban también para actualizar sus conocimientos cuando se instalaban nuevas versiones de las correspondientes aplicaciones.

Sin haberlos anunciado en ningún índice o buscador, al cabo de cierto tiempo se observó que eran accedidos con una frecuencia creciente desde el exterior de la Escuela, a través de Internet. Poco a poco empezaron a llegar de todo el mundo de habla hispana correos electrónicos que se interesaban por nuevos títulos, daban noticia de erratas, solicitaban permiso para utilizarlos en la docencia de otras instituciones o simplemente daban las gracias por haberlos puesto en Internet.

A la vista de estos efectos "no buscados", se estableció una página Web dedicada especialmente a esta colección y se anunció en los tres o cuatro portales más importantes de lengua española, lo que hizo que en poco tiempo se multiplicaran los accesos.

A partir del curso 2000-01 el autor principal y creador de la colección se trasladó a la Escuela Técnica Superior de Ingenieros Industriales de la Universidad Politécnica de Madrid, de la que es actualmente catedrático en el área de Matemática Aplicada. El principal punto de entrada a la colección se encuentra ahora en la dirección http://www.tayuda.com.. El número de accesos ha seguido aumentando, hasta alcanzar la cifra de 50.000 ficheros mensuales, en la primavera de 2001.

Aunque el mantenimiento de esta colección constituya un trabajo notable y no se saque ningún rendimiento económico de ella, da particular alegría el realizar un trabajo que tantos miles de personas consideran útil. El mantenimiento de estos manuales va a ser más difícil en los próximos años, en gran parte por el cambio en la actividad docente de su director o coordinador. Por eso serán bienvenidas todas aquellas ofertas de ayuda para mantener y crear esta colección de "Open Tutorials".

Madrid, verano de 2001.

Javier García de Jalón de la Fuente ([email protected])

Aprenda Matlab 6.1 como si estuviera en Primero página 2

2. INTRODUCCIÓN

2.1. Acerca de este Manual

Las primeras versiones de este manual estuvieron dirigidas a los alumnos de Informática 1 en la Escuela Superior de Ingenieros Industriales de San Sebastián (Universidad de Navarra). Esta asignatura se cursa en el primer semestre de la carrera y el aprendizaje de MATLAB constituía la primera parte de la asignatura. Se trataba pues de un manual introductorio de una aplicación que, para muchos alumnos, iba a constituir su primer contacto "profesional" con los ordenadores y/o con la programación.

Desde el curso 2000-2001, este manual se ha adaptado a la asignatura de Matemáticas de la Especialidad (Mecánica-Máquinas) (Plan 1976) y a las prácticas de Álgebra (Plan 2000) en la Escuela Técnica Superior de Ingenieros Industriales de la Universidad Politécnica de Madrid. A partir del curso 2001-02 este manual se subdivide en dos: " Aprenda Matlab 6.1 como si estuviera en Primero " y " Aprenda Matlab 6.1 como si estuviera en Segundo ", este último de carácter más avanzado.

Por encima de las asignaturas citadas, este manual puede ser útil a un público mucho más amplio, que incluye a alumnos de cursos superiores de las Escuelas de Ingeniería Industrial, a alumnos de Tercer Ciclo y a profesores que quieran conocer más de cerca las posibilidades que tendría MATLAB en sus asignaturas. MATLAB es una de las aplicaciones más útiles que existen para poner a punto métodos numéricos en distintas asignaturas de ingeniería. Por ser una herramienta de alto nivel, el desarrollo de programas numéricos con MATLAB puede requerir hasta un orden de magnitud menos de esfuerzo que con lenguajes de programación convencionales, como Fortran, Pascal, C/C++, Java o Visual Basic.

Se ha pretendido llegar a un equilibrio entre el detalle de las explicaciones, la amplitud de temas tratados y el número de páginas. En algunos casos, junto con las instrucciones introducidas por el usuario se incluye la salida de MATLAB; en otros casos no se incluye dicha salida, pero se espera que el lector disponga de un PC con MATLAB y vaya introduciendo esas instrucciones a la vez que avanza en estas páginas. En muchas ocasiones se anima al lector interesado a ampliar el tema con la ayuda del programa (toda la documentación de MATLAB está disponible on-line a través del Help ). En cualquier caso recuérdese que la informática moderna, más que en “saber cómo hacer algo” consiste en “saber averiguar cómo hacerlo” en pocos segundos.

2.2. El programa MATLAB

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 complejos−, con cadenas de caracteres y con otras estructuras de información más complejas. Una de las capacidades más atractivas 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 6.1 de este programa, aparecida a mediados de 2001.

MATLAB es un gran programa de cálculo técnico y científico. Para ciertas operaciones es muy rápido, cuando puede ejecutar sus funciones en código nativo con los tamaños más adecuados para aprovechar sus capacidades de vectorización. En otras aplicaciones resulta bastante más lento que el código equivalente desarrollado en C/C++ o Fortran. Sin embargo, siempre es una magnífica herramienta de alto nivel para desarrollar aplicaciones técnicas, fácil de utilizar y que, como ya se

Aprenda Matlab 6.1 como si estuviera en Primero página 4

ventana Command History muestra los últimos comandos ejecutados en la Command Window. Estos comandos se pueden volver a ejecutar haciendo doble clic sobre ellos. Clicando sobre un comando con el botón derecho del ratón se muestra un menú contextual con las posibilidades disponibles en ese momento. Para editar uno de estos comandos hay que copiarlo antes a la Command Window. Por otra parte, la ventana Current Directory muestra los ficheros del directorio activo o actual. A diferencia de versiones anteriores de MATLAB en que el directorio activo se debía cambiar desde la Command Window , a partir de la versión 6.0 se puede cambiar desde la propia ventana (o desde la barra de herramientas, debajo de la barra de menús) con los métodos de navegación de directorios propios de Windows. Clicando dos veces sobre uno de los ficheros _.m_* del directorio activo se abre el editor de ficheros de MATLAB, herramienta fundamental para la programación sobre la que se volverá en las próximas páginas.

Puede hacerse que al arrancar se ejecute automáticamente un fichero, de modo que aparezca por ejemplo un saludo inicial personalizado. Esto se hace mediante un fichero de comandos que se ejecuta de modo automático cada vez que se entra en el programa (el fichero startup.m , que debe estar en un directorio determinado, por ejemplo C:\MatlabR12\Work. Ver Apartado 2.6, en la página 18).

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.

>> A=rand(6), B=inv(A), BA* A = 0.9501 0.4565 0.9218 0.4103 0.1389 0. 0.2311 0.0185 0.7382 0.8936 0.2028 0. 0.6068 0.8214 0.1763 0.0579 0.1987 0. 0.4860 0.4447 0.4057 0.3529 0.6038 0. 0.8913 0.6154 0.9355 0.8132 0.2722 0. 0.7621 0.7919 0.9169 0.0099 0.1988 0. B = 5.7430 2.7510 3.6505 0.1513 -6.2170 -2. -4.4170 -2.5266 -1.4681 -0.5742 5.3399 1. -1.3917 -0.6076 -2.1058 -0.0857 1.5345 1. -1.6896 -0.7576 -0.6076 -0.3681 3.1251 -0. -3.6417 -4.6087 -4.7057 2.5299 6.1284 0. 2.7183 3.3088 2.9929 -0.1943 -5.1286 -0. ans = 1.0000 0.0000 0 0.0000 0.0000 -0. 0.0000 1.0000 0.0000 0.0000 -0.0000 0. 0 0 1.0000 -0.0000 -0.0000 0. 0.0000 0 -0.0000 1.0000 -0.0000 0. -0.0000 0.0000 -0.0000 -0.0000 1.0000 0. -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 1. 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 (6x6) 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 unidad^1.

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

(^1) Al invertir la matriz y al hacer el producto posterior se han introducido pequeños errores numéricos de redondeo en

el resultado, lo cual hace que no todos los elementos cero del resultado aparezcan de la misma forma.

Capítulo 2: Introducción página 5

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 500×500, 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 tiempos y calcula de modo aproximado el número de millones de operaciones realizadas. La tercera línea calcula los Megaflops por segundo, para lo cual utiliza la función etime() que calcula el tiempo transcurrido entre dos instantes definidos por dos llamadas a la función clock^2 :

n=500; A=rand(n); B=rand(n); C=zeros(n); tini=clock; C=BA; tend=clock; mflops=(2n^3)/1000000; mflops/etime(tend,tini) Otro de los puntos fuertes de MATLAB son los gráficos, que se verán con más detalle en una sección posterior. A título de ejemplo, se puede teclear la siguiente línea y pulsar intro :

x=-4:.01:4; y=sin(x); plot(x,y), grid, title('Función seno(x)') En la Figura 2 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 instrucciones 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.

Un pequeño aviso antes de seguir adelante. Además de con la Command History , es posible recuperar comandos anteriores de MATLAB y moverse por dichos comandos con el ratón y con las teclas-flechas ↑ y ↓. Al pulsar la primera de dichas flechas aparecerá el comando que se había introducido inmediatamente antes. De modo análogo es posible moverse sobre la línea de comandos con las teclas ← y →, ir al principio de la línea con la tecla Inicio , al final de la línea con Fin , y borrar toda la línea con Esc. Recuérdese que sólo hay una línea activa (la última).

Para borrar todas las salidas anteriores de MATLAB y dejar limpia la Command Window se pueden utilizar las funciones clc y home. La función clc ( clear console ) elimina todas las salidas anteriores, mientras que home las mantiene, pero lleva el prompt ( >> ) a la primera 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.

(^2) En un Pentium III a 800 Mhz el número de Mflops puede ser del orden de 500. Hace 10 años un ordenador de esta

potencia hubiera costado varios millones de Euros.

Figura 2. Gráfico de la función seno(x).

Figura 3. Menú Help de MATLAB.

Capítulo 2: Introducción página 7

Además, se puede también recurrir al Help desde la línea de comandos de la Command Window. Se aconseja hacer prácticas al respecto. Por ejemplo, obsérvese la respuesta a los siguientes usos del comando help :

**>> help

help lang** El comando helpwin seguido de un nombre de comando o de función muestra la información correspondiente a ese comando en la ventana Help (ver Figura 4). Con la opción Go to online doc for ... se accede a una información más completa que puede incluir ejemplos y comandos similares sobre los que también se ofrece ayuda (lista desplegable See Also ).

El comando doc tecleado en la línea de comandos equivale a Help/Full Product Family Help ; si va seguido de un nombre de comando o función se muestra la información detallada correspondiente a ese comando de modo similar a Go to online doc for ... en el párrafo anterior.

En resumen, MATLAB dispone de una ayuda muy completa y accesible, estructurada en varios niveles (línea de comandos en la Command Window , ventana Help , 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.

2.4. El entorno de trabajo de MATLAB

El entorno de trabajo de MATLAB ha mejorado mucho a partir de la versión 6.0, haciéndose mucho más gráfico e intuitivo, similar al de otras aplicaciones profesionales de Windows. En la introducción a MATLAB realizada en el Apartado 2.2 y en la Figura 1 ya se han citado algunas de las componentes más importantes de este entorno de trabajo o de desarrollo. Ahora de explicarán estos componentes con un poco más de detalle.

Los componentes más importantes del entorno de trabajo de MATLAB 6.1 son los siguientes:

  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. Los componentes individuales, orientados a tareas concretas, entre los que se puede citar: a. La ventana de comandos ( Command Window ), b. La ventana histórica de comandos ( Command History Browser ), c. El espacio de trabajo ( Workspace Browser ), d. La plataforma de lanzamiento ( Launch Pad ), e. El directorio actual ( Current Directory Browser ), f. La ventana de ayuda ( Help Browser ) g. El editor de ficheros y depurador de errores ( Editor&Debugger ), h. El editor de vectores y matrices ( Array Editor ). A continuación se describen brevemente estos componentes. Téngase en cuenta que utilizar MATLAB y desarrollar programas para MATLAB es mucho más fácil si se conoce bien este entorno de trabajo. Es por ello muy importante leer con atención las secciones que siguen.

2.4.1. 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 sub-ventanas independientes o como pestañas dentro de una de las sub-ventanas. MATLAB 6.

Aprenda Matlab 6.1 como si estuviera en Primero página 8

ofrece una gran flexibilidad al respecto y es cada usuario quien decide en qué forma desea utilizar la aplicación.

Cuando se arranca MATLAB por primera vez o cuando se ejecuta el comando View/Desktop Layout/Default aparece una ventana como la mostrada en la Figura 6. Aunque dividida en tres zonas, en realidad aparecen cinco componentes , pues cada sub-ventana de la izquierda contiene dos componentes superpuestos que se permutan por medio de la pestaña correspondiente.

La Figura 7 muestra un detalle del menú View , desde el que se controlan los componentes visibles y la forma en que se visualizan. Por ejemplo, como en la Figura 6 la ventana activa es la Command Window , en el menú de la Figura 7 aparece la opción de dejar de alojar dicha ventana en el Matlab Desktop ( Undock Command Window ). Dicho menú permite también eliminar del Desktop alguno de los componentes visibles o visualizar el Help (que no está visible). Con los sub- menús de Desktop Layout se pueden adoptar algunas configuraciones predefinidas, como la configuración por defecto ( Default ) o incluir sólo la Command Window. La configuración adoptada por el usuario se mantendrá la siguiente vez que arranque el programa.

Figura 6. Configuración por defecto del Matlab Desktop. Figura 7. Menú para configurar el Matlab Desktop.

Figura 8. Arrastrar una pestaña desde una sub-ventana. Figura 9. Creación de una nueva sub-ventana.

Además de con el menú mostrado en la Figura 7, 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 sub-ventanas y arrastrando puede modificar su tamaño en la forma que desee.

Aprenda Matlab 6.1 como si estuviera en Primero página 10

la línea del fichero fuente en la que se ha producido el error. Clicando en ese enlace se va a la línea correspondiente del fichero por medio del Editor/Debugger.

2.4.3. LAUNCH PAD

El Launch Pad es un componente muy general que da acceso a otros componentes de MATLAB, sin tener que recurrir a los menús o a otros comandos. Entre ellos se pueden citar al Help Browser , a las Demos , al Current Directory , al Workspace , al Path y a GUIDE ( Graphic Interface Builder ). Algunos de estos componentes ya han sido citados y otros se explicarán más adelante. Este componente es una novedad de la versión 6.

2.4.4. COMMAND HISTORY BROWSER

El Command History Browser ofrece acceso a las sentencias que se han ejecutado anteriormente en la Command Window. Estas sentencias están también accesibles por medio de las teclas ↑ y ↓ como en las versiones anteriores, pero esta ventana facilita mucho el tener una visión más general de lo hecho anteriormente y seleccionar lo que realmente se desea repetir.

Las sentencias anteriores se pueden volver a ejecutar mediante un doble clic o por medio del menú contextual que se abre al clicar sobre ellas con el botón derecho. También se pueden copiar y volcar sobre la línea de comandos, pero se ha de copiar toda la línea, sin que se admita la copia de un fragmento de la sentencia. Existen opciones para borrar algunas o todas las líneas de esta ventana. También este componente es una novedad de la versión 6.

2.4.5. CURRENT DIRECTORY BROWSER

El concepto de directorio activo o directorio actual es muy importante en MATLAB. Los programas de MATLAB se encuentran en fichero con la extensión _.m_. Estos ficheros se ejecutan tecleando su nombre en la línea de comandos (sin la extensión). No todos los ficheros _.m_ que se encuentren en el disco duro o en otras unidades lógicas montadas en una red local son accesibles. Para que un fichero _.m_* se pueda ejecutar es necesario que se cumpla una de las dos condiciones siguientes:

  1. Que esté en el directorio actual. MATLAB mantiene en todo momento un único directorio con esta condición. Este directorio es el primer sitio en el que MATLAB busca cuando desde la línea de comandos se le pide que ejecute un fichero.
  2. Que esté en uno de los directorios indicados en el Path de MATLAB. El Path es una lista ordenada de directorios en los que el programa busca los ficheros o las funciones que ha de ejecutar. Muchos de los directorios del Path son propios de MATLAB, pero los usuarios también pueden añadir sus propios directorios, normalmente al principio o al final de la lista. En un próximo apartado se verá cómo se controla el Path. El comando pwd (de print working directory ) permite saber cual es el directorio actual. Para cambiar de directorio actual se puede utilizar el comando cd (de change directory ) en la línea de comandos, seguido del nombre del directorio, para el cual se puede utilizar un path absoluto (por ejemplo cd C:\Matlab\Ejemplos ) o relativo ( cd Ejemplos ). Para subir un nivel en la jerarquía de directorios se utiliza el comando cd .. , y cd ../.. para subir dos niveles. Éste es el mismo sistema que se sigue para cambiar de directorio en las ventanas de MS-DOS. MATLAB permite utilizar tanto la barra normal (/) como la barra invertida (), indistintamente. El comando cd era el único sistema de cambio de directorio actual hasta la versión 6.0 de MATLAB.

Capítulo 2: Introducción página 11

El Current Directory Browser permite explorar los directorios del ordenador en forma análoga a la del Explorador u otras aplicaciones de Windows. Cuando se llega al directorio deseado se muestran los ficheros y ficheros allí contenidos. El Current Directory Browser permite ordenarlos por fecha, tamaño, nombre, etc. El directorio actual cambia automáticamente en función del directorio seleccionado con este browser, y también se puede cambiar desde la propia barra de herramientas del Matlab Desktop. Los ficheros _.m_* mostrados Current Directory Browser se pueden abrir con el Editor/Debugger mediante un doble clic.

A partir del menú contextual que se abre desde el Current Directory Browser se tiene la posibilidad de añadir ese directorio al Path del MATLAB.

2.4.6. PATH DE MATLAB: ESTABLECER EL CAMINO DE BÚSQUEDA ( SEARCH PATH )

MATLAB puede llamar a una gran variedad de funciones, tanto de sus propias librerías como programadas por los usuarios. A veces puede incluso haber funciones distintas que tienen el mismo nombre. Interesa saber cuáles son las reglas que determinan qué función o qué fichero _.m_* es el que se va a ejecutar cuando su nombre aparezca en una línea de comandos del programa. Esto queda determinado por el camino de búsqueda ( search path ) que el programa utiliza cuando encuentra el nombre de una función.

El search path de MATLAB es una lista de directorios que se puede ver y modificar a partir de la línea de comandos, o utilizando el cuadro de diálogo Set Path , del menú File. El comando path hace que se escriba el search path de MATLAB (el resultado depende de en qué directorio esté instalado MATLAB; se muestran sólo unas pocas líneas de la respuesta real del programa):

>> path

path

MATLABPATH

C:\matlabR12\toolbox\matlab\general C:\matlabR12\toolbox\matlab\ops C:\matlabR12\toolbox\matlab\lang ... C:\matlabR12\toolbox\matlab\verctrl C:\matlabR12\toolbox\matlab\winfun C:\matlabR12\toolbox\matlab\demos C:\matlabR12\toolbox\local Para ver cómo se utiliza el search path supóngase que se utiliza la palabra nombre1 en un comando. El proceso que sigue el programa para tratar de conocer qué es nombre1 es el siguiente:

  1. Comprueba si nombre1 es una variable previamente definida por el usuario.
  2. Comprueba si nombre1 es una función interna o intrínseca de MATLAB.
  3. Comprueba si nombre1 es una sub-función o una función privada del usuario (ver Apartado 6.3).
  4. Comprueba si hay un fichero llamado nombre1.mex , nombre1.dll o nombre1.m en el directorio actual , cuyo contenido se obtiene con el comando dir. Ya se ha visto cómo se cambiaba el directorio actual.
  5. Comprueba si hay ficheros llamados nombre1.mex , nombre1.dll o nombre1.m en los directorios incluidos en el search path de MATLAB. Estos pasos se realizan por el orden indicado. En cuanto se encuentra lo que se está buscando se detiene la búsqueda y se utiliza el fichero que se ha encontrado. Conviene saber que, a igualdad

Capítulo 2: Introducción página 13

guarden como opciones estables). Además se puede utilizar el comando rmpath (de remove path ), al que se le pasan la lista de directorios a eliminar del Path. Por ejemplo, el comando:

>> rmpath 'c:\Matlab' 'c:\Temp'

borra del Path los dos directorios indicados.

2.4.7. WORKSPACE BROWSER Y ARRAY EDITOR

El espacio de trabajo de MATLAB ( Workspace ) es el conjunto de variables y de funciones de usuario que en un determinado momento están definidas en la memoria del programa. Para obtener información sobre el Workspace desde la línea de comandos se pueden utilizar los comandos who y whos. El segundo proporciona una información más detallada que el primero. Por ejemplo, una salida típica del comando whos es la siguiente:

>> whos Name Size Bytes Class

A 3x3 72 double array B 3x3 72 double array C 3x3 72 double array D 3x3 72 double array

Grand total is 36 elements using 288 bytes Éstas son las variables del espacio de trabajo base (el de la línea de comandos de MATLAB). Más adelante se verá que cada función tiene su propio espacio de trabajo, con variables cuyos nombres no interfieren con las variables de los otros espacios de trabajo.

La ventana Workspace Browser constituye un entorno gráfico para ver las variables definidas en el espacio de trabajo. Se activa con el comando View/Workspace. La Figura 14 muestra el aspecto inicial del Workspace Browser cuando se abre desde un determinado programa. Haciendo doble clic por ejemplo sobre la matriz BARS aparece una nueva ventana (o pestaña, si la ventana ya existía) del Array Editor , en la que se muestran y pueden ser modificados los elementos de dicha matriz (ver Figura 15).

Figura 14. Workspace Browser con elementos definidos. Figura 15. Array Editor (Editor de Matrices).

Es importante insistir en que cada una de las funciones de MATLAB tiene su propio espacio de trabajo, al que en principio sólo pertenecen las variables recibidas como argumentos o definidas dentro de la propia función. En la barra de herramientas del Workspace Browser aparece una lista desplegable ( Stack ) con los espacios de trabajo del programa actual. Hay que tener en cuenta que

Aprenda Matlab 6.1 como si estuviera en Primero página 14

cuando se termina de ejecutar una función y se devuelve el control al programa que la había llamado, las variables definidas en la función dejan de existir (salvo que se hayan declarado como persistent ) y también deja de existir su espacio de trabajo.

Si se desean examinar otras matrices y/o vectores, al hacer doble clic sobre ellas el Array Editor las muestra en la misma ventana como pestañas diferentes.

Clicando con el botón derecho sobre alguna de las variables del Workspace Browser se abre un menú contextual que ofrece algunas posibilidades interesantes, como por ejemplo la de representar gráficamente dicha variable.

El Array Editor no sólo permite ver los valores de los elementos de cualquier matriz o vector definido en el programa: es también posible modificar estos valores clicando sobre la celda correspondiente. La ventana del Array Editor incluye una lista desplegable en la que se puede elegir el formato en el que se desea ver los datos.

El Array Editor es muy útil también para entender bien ciertos algoritmos, ejecutando paso a paso un programa y viendo cómo cambian los valores de las distintas variables. Es posible aparcar o situar las ventanas o pestañas del Array Editor en la misma ventana del Editor/Debugger , que se va a ver a continuación.

2.4.8. EL EDITOR/DEBUGGER

En MATLAB tienen particular importancia los ya citados ficheros-M (o M-files ). Son ficheros de texto ASCII, con la extensión _.m_* , que contienen conjuntos de comandos o definición de funciones (estos últimos son un poco más complicados y se verán más adelante). La importancia de estos ficheros-M es que al teclear su nombre en la línea de comandos y pulsar Intro , se ejecutan uno tras otro todos los comandos contenidos en dicho fichero. El poder guardar instrucciones y grandes matrices en un fichero permite ahorrar mucho trabajo de tecleado.

Figura 16. Ventana del Editor/Debugger. Figura 17. Ejecución interactiva con el Editor/Debugger.

Aunque los ficheros _.m_* se pueden crear con cualquier editor de ficheros ASCII tal como Notepad , MATLAB dispone de un editor que permite tanto crear y modificar estos ficheros, como ejecutarlos paso a paso para ver si contienen errores (proceso de Debug o depuración). La Figura 16 muestra la ventana principal del Editor/Debugger , en la que se ha tecleado un fichero-M llamado Prueba1.m , que contiene un comentario y seis sentencias^4. El Editor muestra con diferentes colores los diferentes tipos o elementos constitutivos de los comandos (en verde los comentarios, en rojo las cadenas de caracteres, etc.). El Editor se preocupa también de que las comillas o paréntesis que se abren, no se queden sin el correspondiente elemento de cierre. Colocando el cursor antes o después

(^4) Las seis sentencias de prueba1.m son las siguientes (reagrupadas en dos líneas): clear all; A=rand(3,3); B=A'; C=inv(A); D=C*A; disp('Ya he terminado');