You are on page 1of 34

Introducción

a
MATLAB

Universidad Nacional de Rosario
Facultad de Ciencias Exactas, Ingeniería y Agrimensura
Escuela de Formación Básica
Departamento de Matemática

METODOS COMPUTACIONALES
INGENIERIA INDUSTRIAL

INFORMATICA APLICADA
INGENIERIA MECANICA

Indice

1. Introducción.................................................................................................................................. 1
1.1 El programa MATLAB.............................................................................................................. 1
1.2 Operaciones básicas.................................................................................................................... 1
1.3 Tipos de datos.............................................................................................................................. 3
1.3.1 NÚMEROS REALES DE DOBLE PRECISIÓN
1.3.2 NÚMEROS COMPLEJOS: FUNCIÓN COMPLEX
1.3.3 CADENAS DE CARACTERES
1.4 Operadores................................................................................................................................... 5
1.5 Control de los formatos de salida............................................................................................... 6

2. Vectores y matrices........................................................................................................................ 6
2.1 Definición de vectores y matrices................................................................................................ 6
2.2 Operaciones con vectores y matrices.......................................................................................... 8
2.2.1 OPERADOR DOS PUNTOS (:)

3. Funciones de librería...................................................................................................................... 13
3.1 Características generales de las funciones de MATLAB.......................................................... 13
3.2 Funciones matemáticas elementales que operan de modo escalar........................................... 14
3.3 Funciones que actúan sobre vectores y matrices....................................................................... 15
3.4 Funciones para cálculos con polinomios..................................................................................... 16
3.5 Evaluación de funciones: Función feval..................................................................................... 16

4. Programación de MATLAB.......................................................................................................... 17
4.1 Características generales de la programación de MATLAB................................................... 17
4.2 Bifurcaciones y bucles.................................................................................................................. 17
4.2.1 SENTENCIA IF
4.2.2 SENTENCIA SWITCH
4.2.3 SENTENCIA FOR
4.2.4 SENTENCIA WHILE
4.2.5 SENTENCIA BREAK
4.3 Lectura y escritura interactiva de variables.............................................................................. 19
4.3.1 FUNCIÓN INPUT
4.3.2 FUNCIÓN DISP
4.3.3 FUNCIÓN FPRINTF
4.4 Guardar variables en archivos: Comandos save y load............................................................ 21
4.5 Archivos *.m................................................................................................................................. 23
4.5.1 ARCHIVOS DE COMANDOS (SCRIPTS)
4.5.2 DEFINICIÓN DE FUNCIONES

5. Gráficos bidimensionales............................................................................................................... 24
5.1 Funciones gráficas 2D elementales.............................................................................................. 24
5.2 Función plot................................................................................................................................... 25
5.2.1 COLORES, ESTILOS DE LÍNEA Y MARCADORES EN LA FUNCIÓN PLOT
5.3 Añadir nuevos elementos a un gráfico ya existente................................................................... 27
5.4 Control de los ejes......................................................................................................................... 28
5.5 Función fplot.................................................................................................................................. 28
5.6 Función subplot............................................................................................................................. 29
5.7 Eliminar elementos de un gráfico ya existente........................................................................... 29
5.8 Control de ventanas gráficas: Función figure............................................................................ 30

6. Gráficos tridimensionales.............................................................................................................. 30
6.1 Dibujo de líneas: función plot3.................................................................................................... 30
6.2 Dibujo de mallas: funciones meshgrid, mesh y surf................................................................... 31
6.3 Otros elementos de los gráficos tridimensionales...................................................................... 31

Observación importante:
El presente texto es un resumen de las operaciones, comandos y funciones más importantes de MATLAB. En
la mayoría de los casos, se ha reducido la sintaxis completa como también se han obviado muchas de las
características de los mismos, ajustándolas a lo que sólo se verá en el curso. Además, todo lo tratado en este
texto se puede aplicar en las versiones 5.3 o superiores de MATLAB.

Métodos Computacionales – Informática Aplicada

1. Introducción
1.1 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.
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.

MATLAB se puede arrancar como cualquier otra aplicación de Windows, cliqueando
dos veces en el icono correspondiente o por medio del menú Inicio. Cuando se arranca
MATLAB aparece la ventana de comandos o Command Window. En dicha ventana
aparece también el prompt característico de MATLAB (»). Esto quiere decir que el
programa está preparado para recibir instrucciones.

Si se desea salir del programa, basta teclear los comandos quit o exit, o bien elegir Exit
MATLAB en el menú File (también se puede utilizar el Alt+F4 de todas las
aplicaciones de Windows).

1.2 Operaciones básicas

Inicialmente se utilizará MATLAB como programa interactivo, en el que se irán
definiendo las variables, matrices, vectores y las expresiones que los combinan y
obteniendo los resultados en forma inmediata sobre la ventana de comandos. Si estos
resultados son asignados a otras variables podrán ser utilizados posteriormente en otras
expresiones.

Podemos introducir cualquier comando a continuación del símbolo », por ejemplo si
queremos calcular el área de un círculo con radio = 5, simplemente escribiremos:

» radio = 5;
» ar = pi*radio*radio;

Podemos observar que cada comando finaliza con un punto y coma (;), en este caso los
resultados se calculan pero no se escriben en pantalla. Si queremos saber el valor del
área simplemente escribiremos:

» ar

y pulsaremos intro, entonces en la pantalla se exhibirá:

ar =
12.5664

Si no colocamos punto y coma al final de un comando, automáticamente se muestra el
resultado en pantalla después de calcularse.

Página 1 de 32

Cuando se quiere eliminar una variable de la memoria hay que utilizar el comando clear. Estos deben empezar siempre por una letra y pueden constar de hasta 31 letras y números..). hay que introducir tres puntos (. Esto hace que se deba tener especial cuidado con no utilizar nombres erróneos en las variables. El valor de esa variable. Una expresión de MATLAB puede tener las dos formas siguientes: primero. La forma más normal de cambiar el valor de una variable es colocándola a la izquierda del operador de asignación (=). asignando su resultado a una variable. También se pueden incluir varias expresiones en una misma línea separándolas por comas (. como casi nunca resulta cómodo ir imprimiendo todos los resultados sobretodo cuando se trabaja con matrices de gran tamaño. ans = 12. e incluso el tipo de entidad numérica que representa. que tiene dos formas posibles: » clear sin argumentos. Si se desea que una expresión continúe en la línea siguiente. porque no se recibirá ningún aviso de la computadora. Como en casi todos los lenguajes de programación. Métodos Computacionales – Informática Aplicada Sin embargo. No hace falta declarar las variables que se vayan a utilizar..) o puntos y comas (. En el ejemplo anterior pi es una variable predefinida de MATLAB.) antes de pulsar intro. MATLAB distingue entre mayúsculas y minúsculas en los nombres de variables. que como es de suponer almacena el valor de ∏. clear elimina todas las variables creadas previamente Página 2 de 32 . se obtiene: » pi*radio*radio.5664 Se considera por defecto que una expresión termina cuando se pulsa intro. El carácter guión bajo (_) se considera como una letra. puede cambiar a lo largo de una sesión de MATLAB o a lo largo de la ejecución de un programa. en MATLAB se utilizan variables que tienen nombres. por lo general se coloca el punto y coma. Siguiendo con el ejemplo anterior. variable = expresión y segundo evaluando simplemente el resultado del siguiente modo: expresión en cuyo caso el resultado se asigna automáticamente a una variable interna de MATLAB llamada ans (de answer) que almacena el último resultado obtenido.

son las siguientes: Página 3 de 32 . Por ejemplo. entre 15 y 16 cifras decimales equivalentes). que no tienen argumentos. Por ejemplo. Estas funciones. También puede trabajar con cadenas de caracteres (strings). para MATLAB el infinito se representa como inf ó Inf. observemos cómo responde el programa al ejecutar el siguiente comando: » 1. pues permiten controlar la fiabilidad de los resultados de los cálculos matriciales. en el sentido de que. que son considerados como infinito. así como la de Inf.3 Tipos de datos Ya se ha dicho que MATLAB es un programa preparado para trabajar con variables escalares. MATLAB dispone de tres funciones útiles relacionadas con las operaciones de coma flotante. MATLAB tiene esto en cuenta.1 NÚMEROS REALES DE DOBLE PRECISIÓN Los elementos constitutivos de variables escalares. vectores y matrices. Los NaN se propagan al realizar con ellos cualquier operación aritmética. vectores y matrices son números reales almacenados en 8 bytes (53 bytes para la mantisa y 11 para el exponente de 2. Métodos Computacionales – Informática Aplicada » clear a. MATLAB mantiene una forma especial para los números muy grandes (más grandes que los que es capaz de representar).0 Warning: Divide by zero ans = Inf Así pues. por ejemplo. ejecutemos los siguientes comandos y observemos las respuestas obtenidas: » 0/0 Warning: Divide by zero ans = NaN » inf/inf ans = NaN En ambos casos la respuesta es NaN. 1. Algo parecido sucede con los Inf. son enormemente importantes en MATLAB. Es importante saber cómo trabaja MATLAB con estos números y los casos especiales que presentan. Este tipo de respuesta. cualquier número sumado a un NaN da otro NaN. es decir guardando cada dato en 8 bytes. MATLAB tiene también una representación especial para los resultados que no están definidos como números.3. que es la abreviatura de Not a Number. con unas 15 cifras decimales exactas.b borra las variables indicadas (en este caso las variables a y b). 1. MATLAB trabaja siempre en doble precisión.0/0.

ejecutemos los siguientes comandos: » a = sqrt(-4) a = 0 + 2. Para ver como se representan por defecto los números complejos. o una variable a la que se haya asignado el resultado de esta función. como en el ejemplo siguiente: Página 4 de 32 . sin embargo. MATLAB trabaja sin ninguna dificultad con números complejos. realmin devuelve el número más chico con que se puede trabajar (2. cuando se está trabajando con números complejos. Esto no es posible en el caso de que sí estén definidas.0000 + 4. como unidad imaginaria puede utilizarse también la función sqrt(-1).2251e-308) realmax devuelve el número más grande con que se puede trabajar (1.0 y el número de coma flotante inmediatamente superior. pues puede dar lugar a errores y confusiones.0000i » 2+3*i ans = 8 » 2+3*j ans = 2. que crea un número complejo a partir de dos argumentos que representan la parte real e imaginaria. conviene no utilizar la i como variable ordinaria. Métodos Computacionales – Informática Aplicada eps devuelve la diferencia entre 1.0000i » 3 + 4j ans = 3. En general. Si la i o la j no están definidas como variables. eps vale 2. Da una idea de la precisión o número de cifras almacenadas.7977e+308) 1. puede verse que siempre aparece la i). puede intercalarse el signo (*). MATLAB dispone asimismo de la función complex.0000 + 3. porque entonces se utiliza el valor de la variable. En un PC.0000i Cuando i y j son variables utilizadas para otras finalidades.3.0000i En la entrada de datos de MATLAB se pueden utilizar indistintamente la i y la j para representar el número imaginario unidad (en la salida. Por ejemplo.2 NÚMEROS COMPLEJOS: FUNCIÓN COMPLEX En muchos cálculos matriciales los datos y/o los resultados no son reales sino complejos.0000 + 3. con parte real y parte imaginaria.2204e-016. observemos los siguientes resultados: » i = 2 i = 2 » 2+3i ans = 2.

los operadores lógicos de MATLAB son los siguientes: Página 5 de 32 .3 CADENAS DE CARACTERES MATLAB puede definir variables que contengan cadenas de caracteres. Los operadores aritméticos son los siguientes: + adición o suma – sustracción o resta * multiplicación / división ^ potenciación \ división inversa Son los mismos que en los lenguajes de programación tradicionales.4 Operadores MATLAB puede operar con las variables por medio de operadores.0000 + 2.3333 MATLAB dispone de los siguientes operadores relacionales: < menor que > mayor que <= menor o igual que >= mayor o igual que == igual que ~= distinto que Observemos que el operador de igualdad se escribe con un doble signo igual (==) para diferenciarlo del operador de asignación (=). A su vez. Por ejemplo: » s = 'cadena de caracteres' Los caracteres de una cadena se almacenan en un vector.2) ans = 1. En MATLAB las cadenas de texto van entre apóstrofos o comillas simples. Cada carácter ocupa 2 bytes. o sea que a\b es equivalente a b/a.3. que calcula la inversa de la división. 1.0000i 1. excepto el operador división inversa. Métodos Computacionales – Informática Aplicada » complex(1. Por ejemplo: » c= 3\1 c = 0.

si los números están separados por puntos y coma (. se puede definir un tamaño y cambiarlo posteriormente). 2. en MATLAB las matrices y vectores son variables que tienen nombres. 1. Respecto a los formatos numéricos con que MATLAB muestra los resultados (recoerdemos que siempre calcula con la máxima precisión). y el número de filas y de columnas en el caso de matrices.5 Control de los formatos de salida Los formatos de salida en la ventana principal de MATLAB se pueden controlar fácilmente a partir del cuadro de diálogo que se abre con el comando Preferences del menú File. en función del número de elementos que se proporcionan (o se utilizan). dependiendo del valor MATLAB aplica un factor de escala general a las variables cuando sus valores más grandes o más pequeños son superiores o inferiores respectivamente a una determinada cantidad (103 y 10-3 ). Métodos Computacionales – Informática Aplicada & and | or ~ negación lógica Más adelante se verán ejemplos y ciertas funciones de las que dispone MATLAB para facilitar la aplicación de estos operadores a vectores y matrices. Vectores y matrices 2. Los más importantes de estos comandos son los siguientes: format short coma fija con 4 decimales (defecto) format long coma fija con 15 decimales format short e notación científica con 4 decimales format short g notación científica o decimal. dependiendo del valor format long e notación científica con 15 decimales format long e notación científica o decimal. el resultado será un vector fila): » x = [10 20 30] x = 10 20 30 Por el contrario. Es posible definir un vector fila x en la forma siguiente (si los tres números están separados por blancos o comas.) se obtendrá un vector columna: Página 6 de 32 . MATLAB determina el número de elementos en el caso de vectores. Para definir una matriz no hace falta establecer de antemano su tamaño (de hecho. se pueden activar las mismas posibilidades por medio de comandos tecleados en la línea de comandos de MATLAB.1 Definición de vectores y matrices Como en casi todos los lenguajes de programación.

automáticamente se asigna un cero a todos los demás elementos anteriores del vector o de la matriz.2)). si A es una matriz (3x3) se obtiene el mismo valor escribiendo A(1. Las matrices se almacenan por columnas (aunque se introduzcan por filas.3) = 0 D = 0 0 0 0 0 0 Página 7 de 32 .). 4 5 6. x] C = 1 2 3 4 5 6 7 8 9 10 20 30 Otra posibilidad de crear un vector o una matriz es dándole valores a algunos de sus elementos. » w w = 0 0 0 9 0 1 » D(2. » w(6) = 1. como se ha dicho antes). el siguiente comando define una matriz A de dimensión (3x3): » A = [1 2 3. y teniendo en cuenta esto puede accederse a cualquier elemento de una matriz con un sólo subíndice. 7 8 9] A = 1 2 3 4 5 6 7 8 9 En MATLAB se accede a los elementos de un vector poniendo el índice entre paréntesis (por ejemplo x(3)). Por ejemplo: » w(4) = 9. 12. A modo de ejemplo. Por ejemplo. ejecutemos los siguientes comandos: » z = [x 40 50 60] z = 10 20 30 40 50 60 » C = [A. los elementos de una misma fila están separados por blancos o comas.2) que escribiendo A(4). mientras que las filas están separadas por caracteres punto y coma (. Métodos Computacionales – Informática Aplicada » y = [11. Un caso especialmente interesante es el de crear una nueva matriz o un nuevo vector a partir de otras matrices u otros vectores definidos previamente. 13] y = 11 12 13 Las matrices se definen por filas. Los elementos de las matrices se acceden poniendo los dos índices entre paréntesis. separados por una coma (por ejemplo A(1. Por ejemplo.

También podría haberse asignado el resultado a otra matriz llamada B: » B = A' B = 1 4 7 2 5 8 3 6 9 En el caso de vectores. Para calcular A' (traspuesta de A) basta teclear lo siguiente: » A' ans = 1 4 7 2 5 8 3 6 9 Como el resultado de la operación no ha sido asignado a ninguna otra matriz. Estas dificultades desaparecen si se suma a x el vector traspuesto de y: » x+y' ans = 21 32 43 Es decir para poder sumar dos vectores ambos deben ser del mismo tipo y tener la misma cantidad de elementos.2 Operaciones con vectores y matrices A partir de este momento tanto las matrices como los vectores definidos anteriormente están disponibles para hacer cualquier tipo de operación con ellos. La variable ans puede ser utilizada como operando en la siguiente expresión que se introduzca. MATLAB utiliza un nombre de variable por defecto (ans. En MATLAB el operador apóstrofo (') es el símbolo de trasposición matricial. Lo mismo sucede para la resta. Página 8 de 32 . una sencilla operación con A es hallar su matriz traspuesta. que contiene el resultado de la última operación. de answer). si se intenta sumar los vectores x e y se obtendrá el siguiente mensaje de error: » x+y ??? Error using ==> + Matrix dimensions must agree. Por ejemplo. Métodos Computacionales – Informática Aplicada 2. el operador apóstrofo (') permite obtener un vector columna a partir de un vector fila. Por ejemplo: » xt = x' xt = 10 20 30 » yt = y' yt = 11 12 13 MATLAB tiene en cuenta la diferencia entre vectores fila y vectores columna. Por ejemplo. o también obtener un vector fila a partir de un vector columna.

^2 ans = 100 400 900 En el caso de las matrices sucede algo parecido. Métodos Computacionales – Informática Aplicada En el caso del producto. 4 5 6] M = 1 2 3 4 5 6 » N = [1 2. Para solucionarlo se debe escribir: » x*x' ans = 1400 Los operadores anteriores se pueden aplicar también de modo mixto. Lo mismo sucede para el caso de la potencia (./). En este caso la operación con el escalar se aplica a cada uno de los elementos del vector. se efectúa el producto escalar entre ambos vectores. se obtiene un mensaje de error debido a que se está intentando multiplicar 2 vectores fila (x*x).^). Consideremos el siguiente ejemplo: » v = [3 5 7 9] v = 3 5 7 9 » v*2 ans = 6 10 14 18 » v-4 ans = -1 1 3 5 Si lo que se desea es multiplicar o dividir 2 vectores componente a componente se deben utilizar los operadores punto (. Por ejemplo: » x.* y .*yt ans = 21 32 43 » x. 3 4. se obtiene: » x*y ans = 740 es decir. 5 6] Página 9 de 32 . Consideremos las siguientes matrices: » M = [1 2 3. debiéndose multiplicar un vector fila por un vector columna. Si se ejecuta el siguiente comando: » x^2 ??? Error using ==> ^ Matrix must be square. es decir con un operando escalar y otro vectorial.

* . Por ejemplo. es decir con un operando escalar y otro matricial./ y . también se puede operar de un modo mixto. Métodos Computacionales – Informática Aplicada N = 1 2 3 4 5 6 Para obtener el producto matricial entre ambas matrices se debe ejecutar el siguiente comando: » M*N ans = 22 28 49 64 También se puede hacer productos entre matrices y vectores (siempre que se respeten las reglas del álgebra vectorial): » M*y ans = 74 182 Si lo que se desea es sumar dos matrices. ambas deben ser del mismo tamaño.*N' ans = 1 6 15 8 20 36 » M. o elevar los elementos de una matriz a una determinada potencia. se deben utilizar los operadores punto (.^2 ans = 1 4 9 16 25 36 Al igual que con vectores. Consideremos el siguiente ejemplo: » M*3 ans = 3 6 9 12 15 18 Página 10 de 32 . . de lo contrario se recibirá un mensaje de error. puedo sumar a M la traspuesta de N: » M+N' ans = 2 5 8 6 9 12 Para multiplicar o dividir dos matrices componente a componente.^). Por ejemplo: » M.

en las formas que se muestran a continuación: » x = 1:2:10 x = 1 3 5 7 9 » x = 1:1.0:pi/50:2*pi]'.5000 7. por defecto. 3 32 7 21 3. » A=[5 1 6 26 19.) después de un comando el resultado no aparece en pantalla). 31 9 2 22 7. Por ejemplo: » A(2. Para empezar. z = cos(x).3) ans = 7 Página 11 de 32 .1 OPERADOR DOS PUNTOS (:) Este operador es muy importante en MATLAB y puede usarse de varias formas. Por defecto el incremento es 1. » y = sin(x). Si se desea obtener un vector columna basta trasponer el resultado. » [x y z] El operador dos puntos (:) es aún más útil y potente –y también más complicado– con matrices. los números enteros entre el 1 y el 10.5000 10.5:10 x = 1. A continuación se va a definir una matriz A de tamaño 6x6 y después se realizarán diversas operaciones sobre ella con el operador (:).2. El siguiente ejemplo genera una tabla de funciones seno y coseno. En este caso el incremento va entre el valor inferior y el superior. positivos o negativos. este operador produce vectores fila. Métodos Computacionales – Informática Aplicada 2. pero este operador puede también utilizarse con otros valores enteros y reales.0000 2. definamos un vector x con el siguiente comando: » x = 1:10 x = 1 2 3 4 5 6 7 8 9 10 En cierta forma se podría decir que el operador (:) representa un rango: en este caso. » x = [0. Observemos el resultado (recordemos que con (. 0 5 34 12 14] A = 5 1 6 26 19 3 32 7 21 3 31 9 2 22 7 8 28 3 7 10 0 5 34 12 14 Recordemos que MATLAB accede a los elementos de una matriz por medio de los índices de fila y de columna encerrados entre paréntesis y separados por una coma.0000 8.0000 » x = 10:-1:1 x = 10 9 8 7 6 5 4 3 2 1 Puede verse que.0000 5.5000 4. 8 28 3 7 10.

» B([2 4 5]. pero es evidente que todo lo que se dice para filas vale para columnas y viceversa: basta cambiar el orden de los índices.76 0.73] x = 0.26 0. 4 y 5 de B por las filas 1.:) ans = 5 1 6 26 19 3 32 7 21 3 0 5 34 12 14 En los ejemplos anteriores se han extraído filas y no columnas.04 0. 4 y 5: » A(3:5. 2 y 3 de A. 1:3) ans = 0 5 34 Los dos puntos aislados representan "todos los elementos". el siguiente comando extrae todos los elementos de la 3ª fila: » A(3. el siguiente comando extrae las filas 1.26 0. Observemos que la siguiente secuencia de comandos sustituye las filas 2.91 0. 2 0 1 3 1. Por ejemplo.:) = A(1:3.91 0. Por ejemplo. 2 6 8 0 1]. Métodos Computacionales – Informática Aplicada El siguiente comando extrae los 3 primeros elementos de la 5ª fila: » A(5.:) ans = 31 9 2 22 7 8 28 3 7 10 0 5 34 12 14 Se pueden extraer conjuntos disjuntos de filas utilizando corchetes [ ].76 0. se va a ver la forma de invertir el orden de los elementos de un vector: » x = [0. :) ans = 31 9 2 22 7 El siguiente comando extrae todos los elementos de las filas 3. 2 4 5 7 6. Por ejemplo.04 0. 4 6 8 1 2. El operador dos puntos (:) puede utilizarse en ambos lados del operador (=). » B = [1 0 0 0 10. 2 y 5: » A([1 2 5].73 Página 12 de 32 . a continuación se va a definir una matriz B de tamaño 5x5 y se van a reemplazar filas de B por filas de A.:) B = 1 0 0 0 10 5 1 6 26 19 2 0 1 3 1 3 32 7 21 3 0 5 34 12 14 Como nuevo ejemplo.

Recuérdese que para que MATLAB encuentre una determinada función de usuario el correspondiente archivo-M debe estar en el directorio actual o en uno de los directorios del path. el coseno y la raíz cuadrada. Al igual que en la mayoría de los lenguajes.76 0. Algunas son funciones intrínsecas.73 0. valor de retorno y argumentos.m que vienen con el propio programa o que han sido aportadas por usuarios del mismo. donde se han utilizado algunas funciones matemáticas bien conocidas como el cálculo del valor máximo. » r = sqrt(x^2+y^2). el seno. 4 9 2] A = 8 1 6 3 5 7 4 9 2 » A(:. una función tiene nombre. » a = cos(alfa) – sin(alfa). el valor mínimo. 3 5 7. Funciones de librería 3.26 0. Existen además funciones definidas en ficheros *. Estas funciones son particularmente rápidas y eficientes. Página 13 de 32 .1 Características generales de las funciones de MATLAB MATLAB tiene un gran número de funciones incorporadas.91 Observemos que por haber utilizado paréntesis –en vez de corchetes– los valores generados por el operador (:) afectan a los índices del vector y no al valor de sus elementos. esto es.m en la forma que se verá más adelante. Para invertir el orden de las columnas de una matriz se puede hacer lo siguiente: » A = [8 1 6. Métodos Computacionales – Informática Aplicada » x = x(5:-1:1) x = 0. funciones incorporadas en el propio código ejecutable del programa. Las funciones se definen en archivos de texto *. » máximoy = max(y). y y alfa ya se encuentran definidas): » [máximox. posmax] = max(x).04 0. Una función se llama utilizando su nombre en una expresión o utilizándolo como un comando más. Consideremos los siguientes ejemplos de llamada a funciones (se supone que las variables x.3:-1:1) ans = 6 1 8 7 5 3 2 9 4 3.

Observemos que los 2 valores de retorno se recogen entre corchetes. 3. vectores o matrices (ya se verá que pueden recogerse en distintas variables todos o sólo parte de estos valores de retorno). dando como resultado un nuevo vector o una nueva matriz. descartándose la posición de dicho valor. Es posible crear una variable llamada sin o cos.y) similar a rem round(x) redondeo hacia el entero más próximo fix(x) redondea hacia el entero más próximo a 0 floor(x) valor entero más próximo hacia  ceil(x) valor entero más próximo hacia  Página 14 de 32 . vectores y matrices. Métodos Computacionales – Informática Aplicada Los argumentos de cada función van a continuación del nombre entre paréntesis (y separados por comas si hay más de uno). Los nombres de las funciones de MATLAB no son palabras reservadas del lenguaje.y) resto de la división entre x e y mod(x.2 Funciones matemáticas elementales que operan de modo escalar Estas funciones. 0 si =0 y 1 si >0 rem(x. ya sean escalares. respectivamente. y se devuelven dos valores: el valor máximo y la posición que ocupa en el vector. que comprenden las funciones matemáticas básicas. Una diferencia importante con otros lenguajes es que en MATLAB las funciones pueden tener valores de retorno múltiples. Algunas de las funciones de este grupo son las siguientes: sin(x) seno cos(x) coseno tan(x) tangente asin(x) arco seno acos(x) arco coseno atan(x) arco tangente (devuelve un ángulo entre p/2 y p/2) sinh(x) seno hiperbólico cosh(x) coseno hiperbólico tanh(x) tangente hiperbólica asinh(x) arco seno hiperbólico acosh(x) arco coseno hiperbólico atanh(x) arco tangente hiperbólica log(x) logaritmo natural log10(x) logaritmo decimal exp(x) función exponencial sqrt(x) raíz cuadrada sign(x) devuelve -1 si <0. separados por comas. se aplican de la misma forma a escalares. Los valores de retorno son el resultado de la función y sustituyen a ésta en la expresión donde la función aparece. Para poder acceder a las funciones hay que eliminar (clear) las variables del mismo nombre que las ocultan. En el caso de vectores y matrices actúan sobre cada elemento como si se tratase de un escalar. En este caso se calcula el elemento de máximo valor en un vector. En el segundo ejemplo sólo se recoge un valor de retorno: el valor máximo. que ocultan las funciones correspondientes. como en el primero de los ejemplos anteriores.

n) idem de tamaño m x n Página 15 de 32 . son las siguientes: n=length(x) si x es un vector devuelve la cantidad de elementos del vector x. Devuelve el valor mínimo xn y la posición que ocupa in sum(x) suma de los elementos de un vector cumsum(x) devuelve el vector suma acumulativa de los elementos de un vector mean(x) valor medio de los elementos de un vector std(x) desviación típica prod(x) producto de los elementos de un vector cumprod(x) devuelve el vector producto acumulativo de los elementos de un vector [y. con distribución uniforme.n] = size(A) devuelve el número de filas m y de columnas n de una matriz A. dando como valor de retorno un vector fila obtenido al aplicar la función a cada columna de la matriz considerada como vector.i]=sort(x) ordenación de menor a mayor de los elementos de un vector x. En realidad estas funciones se pueden aplicar también a matrices. Hay otras funciones que también trabajan con vectores y matrices. Si la matriz es cuadrada basta recoger el primer valor de retorno B=zeros(size(A)) forma una matriz B de ceros del mismo tamaño que una matriz A previamente creada B=ones(size(A)) ídem con unos A=diag(x) forma una matriz diagonal A cuyos elementos diagonales son los elementos de un vector ya existente x x=diag(A) forma un vector x a partir de los elementos de la diagonal de una matriz ya existente A A=rand(n) forma una matriz de números aleatorios entre 0 y 1. Métodos Computacionales – Informática Aplicada real(x) partes reales imag(x) partes imaginarias abs(x) valores absolutos 3. pero en ese caso se aplican por separado a cada columna de la matriz. Si estas funciones se quieren aplicar a las filas de la matriz basta aplicar dichas funciones a la matriz traspuesta.im]=max(x) máximo elemento de un vector. si x es una matriz cuadrada devuelve el órden de la matriz y si x es una matriz no cuadrada devuelve la cantidad de filas o la cantidad de columnas según cual sea el mayor valor [m.3 Funciones que actúan sobre vectores y matrices Las siguientes funciones actúan sobre vectores: [xm. Devuelve el valor máximo xm y la posición que ocupa im [xn. y un vector i con las posiciones iniciales en x de los elementos en el vector ordenado y. de tamaño n x n A=rand(m.in]=min(x) mínimo elemento de un vector. Devuelve el vector ordenado y.

. Página 16 de 32 . -8..3026 + 1. -10].4 Funciones para cálculos con polinomios Para MATLAB un polinomio se puede definir mediante un vector de coeficientes.8x2 + 6x .0238i » polyval(pol..6748 0.. Por ejemplo.3026 . Métodos Computacionales – Informática Aplicada 3. 0.m (que se estudiarán a continuación) que acepten como argumentos cadenas de caracteres especificando el nombre de otras funciones.0. Su forma general es: [v1..1) ans = -11 3.5) son equivalentes.v2.5) » feval('cos'. el polinomio: x4.10 se puede representar mediante el vector [1. Los valores de retorno son los que se obtienen al evaluar nombrefuncion. .1. Podemos observar que los dos siguientes comandos: » cos(0. arg2.5 Evaluación de funciones: Función feval La función feval() permite evaluar una función para un determinado valor o conjunto de valores de sus argumentos.2800 2. arg1.] = feval(nombrefuncion. 6.) El primer argumento de feval() es una cadena de caracteres conteniendo el nombre de la función a evaluar.0238i 0. MATLAB puede realizar diversas operaciones sobre él. como por ejemplo evaluarlo para un determinado valor de x (función polyval()) y calcular las raíces (función roots()): » pol = [1 0 -8 6 -10] pol = 1 0 -8 6 -10 » roots(pol) ans = -3. Sin embargo la función feval() es muy útil en aquellas funciones definidas en un archivo *. y los restantes argumentos son los correspondientes a la función nombrefuncion.

y la lectura y escritura interactiva de variables. Programación de MATLAB 4. pues pueden servir para definir help's personalizados de las funciones que el usuario vaya creando. que son los elementos básicos de cualquier programa de una cierta complejidad. Los programas se escriben en archivos de texto con extensión (. el programa supone que todo lo que va desde ese carácter hasta el fin de la línea es un comentario. los archivos de comandos o de guión (llamados scripts en inglés) y las funciones.1 SENTENCIA IF En su forma más simple. y que tiene la forma: Página 17 de 32 . Al final se explicará con más detalle las características de los archivos de comandos y de las funciones. Los bucles permiten repetir las mismas o análogas operaciones sobre datos distintos.m que definen funciones permiten extender las posibilidades de MATLAB. en la que pueden concatenarse tantas condiciones como se desee. 4. Sin embargo.m). Existen dos tipos de archivos *. aunque se pueden poner si se desea) : if condicion sentencias end Existe también la bifurcación múltiple. Cuando aparece en una línea de comandos. Se comenzará viendo las bifurcaciones y bucles. de hecho existen bibliotecas de archivos *.m tienen algunas peculiaridades importantes. como lenguaje de programación no tiene tantas posibilidades como otros lenguajes. con su nombre. 4. Estos archivos se crean y modifican con un editor de textos cualquiera. Vale destacar que para MATLAB el carácter por ciento (%) indica comienzo de comentario. Los archivos *.m. lo más sencillo es utilizar su propio editor de textos. sus argumentos y sus valores de retorno. Los primeros contienen simplemente un conjunto de comandos que se ejecutan sucesivamente cuando se teclea el nombre del archivo en la línea de comandos de MATLAB. De todas formas. Métodos Computacionales – Informática Aplicada 4. Las bifurcaciones permiten realizar una u otra operación según se cumpla o no una determinada condición. la sentencia if se escribe en la forma siguiente (observemos que la condición no va entre paréntesis.2.m que se venden (toolkits) o se distribuyen gratuitamente (a través de Internet). Las funciones permiten definir funciones enteramente análogas a las de MATLAB.2 Bifurcaciones y bucles MATLAB posee un lenguaje de programación que –como cualquier otro lenguaje– dispone de sentencias para realizar bifurcaciones y bucles. Más adelante se verá que los comentarios de los archivos *.1 Características generales de la programación de MATLAB MATLAB es una aplicación que se puede programar muy fácilmente.

. bloque3 end Al principio se evalúa la expresion. es posible agrupar varias condiciones dentro de unas llaves. una condición en la forma ~=B exige que todos los elementos sean diferentes dos a dos. Su forma general es la siguiente: switch expresion case case_expr1. bloque1 case {case_expr2. del tipo A==B.2. Métodos Computacionales – Informática Aplicada if condicion1 bloque1 elseif condicion2 bloque2 elseif condicion3 bloque3 else bloque4 end donde la opción por defecto else puede ser omitida: si no está presente no se hace nada en caso de que no se cumpla ninguna de las condiciones que se han chequeado. Para que se considere que la condición se cumple. y por tanto las sentencias del if no se ejecuten. Basta que haya dos elementos diferentes para que las matrices no sean iguales. es necesario que sean iguales dos a dos todos los elementos de las matrices A y B. case_expr4. Página 18 de 32 . cuyo resultado debe ser un número escalar o una cadena de caracteres.. Este resultado se compara con las case_expr. basta que se cumpla cualquier condición para que se ejecute ese bloque de sentencias. Una observación muy importante: la condición del if puede ser una condición matricial... Análogamente. Bastaría que hubiera dos elementos iguales para que la condición no se cumpliese. y se ejecuta el bloque de sentencias que corresponda con ese resultado. otherwise. case_expr3..elseif concatenados. Si ninguno es igual a expresion se ejecutan las sentencias correspondientes a otherwise. En resumen: if A==B exige que todos los elementos sean iguales dos a dos if ~=B exige que todos los elementos sean diferentes dos a dos 4.} bloque2 . Según puede verse en el ejemplo anterior.. donde A y B son matrices del mismo tamaño.2 SENTENCIA SWITCH La sentencia switch realiza una función análoga a un conjunto de if. Sólo se ejecuta uno de los bloques relacionado con un case...

variando de uno en uno.2. Página 19 de 32 .4 SENTENCIA WHILE La estructura del bucle while es muy similar a la de la mayoría de los lenguajes de programación. y luego i se va reduciendo de 0.2. el bucle se ejecuta por primera vez con i=n.3 Lectura y escritura interactiva de variables Se verá a continuación una forma sencilla de leer variables desde teclado y escribir mensajes en la pantalla de la PC.2 hasta que llega a ser menor que 1. La variable j es la que varía más rápidamente (por cada valor de i. Métodos Computacionales – Informática Aplicada 4. en cuyo caso el bucle se termina: for i=n:-0. 4. for i=1:n sentencias end En el siguiente ejemplo se presenta el caso más general para la variable del bucle (valor_inicial: incremento: valor_final). La siguiente construcción ejecuta sentencias con valores de i de 1 a n.2 en 0. Su sintaxis es la siguiente: while condicion sentencias end 4.3 SENTENCIA FOR La sentencia for repite un conjunto de sentencias un número predeterminado de veces.2:1 sentencias end En el siguiente ejemplo se presenta una estructura correspondiente a dos bucles anidados. j toma todos sus posibles valores): for i=1:m for j=1:n sentencias end end 4.2.5 SENTENCIA BREAK La sentencia break hace que se termine la ejecución del bucle más interno de los que comprenden a dicha sentencia.

1 FUNCIÓN INPUT La función input permite imprimir un mensaje en la línea de comandos de MATLAB y recuperar como valor de retorno un valor numérico o una cadena de caracteres tecleada por el usuario. 4.3. Métodos Computacionales – Informática Aplicada 4. var1. pero sin imprimir su nombre. Su forma general es: fprintf('cadena de control'.4) » A » disp(A) Observemos en el ejemplo anterior la diferencia entre las dos formas de imprimir la matriz A.3..) donde la cadena de control va encerrada entre apóstrofos y contiene los formatos de escritura: %f para variables numéricas %e para variables numéricas con notación exponencial %s para cadenas de caracteres Página 20 de 32 . con lo que el mismo se almacena en la cadena nombre. un vector o una matriz. Después de imprimir el mensaje.. el programa espera que el usuario teclee el valor numérico o la cadena de caracteres. En el caso de una cadena de caracteres. 4.2 FUNCIÓN DISP La función disp permite imprimir en pantalla un mensaje de texto o el valor de una variable. El usuario puede teclear simplemente un escalar. var2. Consideremos los siguientes ejemplos de cómo se utiliza: » disp('El programa ha terminado') » A=rand(4..'s') En este caso no es necesario encerrar entre apóstrofos el texto tecleado.3. la misma debe ser tecleada entre apóstrofos.3 FUNCIÓN FPRINTF La función fprintf permite imprimir en pantalla mensajes y valores con formato. Veamos los siguientes ejemplos de uso de esta función: n = input('Teclee el número de ecuaciones') nombre = input('Ingrese su nombre (encerrado entre apóstrofos)') Otra posible forma de esta función es la siguiente (observemos el parámetro 's'): nombre = input('¿Cómo te llamas?'.

Métodos Computacionales – Informática Aplicada Por ejemplo: fprintf('el volumen es %12. El operador de nueva línea se puede colocar en cualquier lugar de la cadena. Hay que tener en cuenta que al salir del programa todo el contenido de la memoria se borra automáticamente.2 fprintf('superficie: %12. por ejemplo las sentencias: num = 93.5f\n'. de los cuales 5 son para la parte decimal) y \n es el operador de nueva línea que avanza en una línea la posición en la pantalla. Si se ejecutan las siguientes sentencias sup = 12345.5e\n'.3f\n'. Si se teclea: » save Página 21 de 32 . por ejemplo: num = 12. vol) En la cadena de control aparece 'el volumen es' que es el mensaje que se exhibirá. num) producen el siguiente resultado: numero: 93 4. doble = 2 * num.691 Para imprimir un valor entero empleando el mismo formato se debe poner un cero después del punto decimal.4 Guardar variables en archivos: Comandos save y load En muchas ocasiones puede resultar interesante interrumpir el trabajo con MATLAB y poderlo recuperar más tarde en el mismo punto en el que se dejó (con las mismas variables definidas).5f es el formato con el cual se imprimirá la variable (longitud total del campo de 12 dígitos. % 12. sup) se exhibirá superficie: 1. num) fprintf('doble: %12. fprintf('numero: %3.3f'. Por último vol es la variable que se imprimirá con formato %12.3454.5f.23452e+04 Si se escriben consecutivamente dos funciones fprintf sin \n en la primera función.0f\n '.345 doble: 24. doble) toda la salida se imprimirá en una sola línea: numero: 12. fprintf('numero: %12.

Se pueden guardar también matrices y vectores de forma selectiva y en archivos con nombre especificado por el usuario. Para recuperarlas en otra sesión basta teclear: » load filename El comando save también permite guardar variables en un archivo de texto en formato ASCII utilizándolo de la siguiente forma: » save datos. La razón es que si bien save en formato ASCII puede escribir múltiples variables.mat.dat') guarda el contenido del archivo en una variable llamada A Página 22 de 32 . x e y en un archivo binario llamado filename. Métodos Computacionales – Informática Aplicada antes de abandonar el programa.dat A –ascii -double Hay que tener en cuenta que en formato ASCII sólo se guardan los valores y no otra información tal como los nombres de las matrices y/o vectores. se crea un archivo binario llamado matlab. se guarda la matriz A en el archivo llamado datos. Por ejemplo. el comando: » load datos. por ejemplo: » A = load('datos.dat guarda el contenido de todo el archivo en una variable llamada datos independientemente de cual sea la extensión del archivo. Si se desea que la variable tenga un nombre distinto al del archivo. y guarda las variables A.mat con el nombre y valor de todas las variables definidas. se escribe: » save datos. el comando: » save filename A. En cambio. Cada elemento de A se almacena con 8 cifras decimales. Por ejemplo. Para recuperar los datos almacenados en un archivo de texto se puede utilizar el comando load. Dicho variables pueden recuperarse la siguiente vez que se arranque el programa con el comando: » load Esta es la forma más básica de los comandos save y load.dat A –ascii En este caso.dat. load lee todo el archivo de datos y lo almacena en una variable cuyo nombre coincide con el nombre del archivo. si se desea almacenar 16 cifras decimales. pero en este caso load no se comporta de forma inversa a save. x. se debe utilizar el comando load como una función que tenga como parámetro al nombre del archivo.

Mención especial merece el archivo de comandos startup. en el sentido de que son inaccesibles desde otras partes del programa y en el de que no interfieren con variables del mismo nombre definidas en otras funciones o partes del programa. Las variables definidas por los archivos de comandos son variables del espacio de trabajo desde el que se ejecuta el archivo. un archivo *. Al terminar la ejecución del script. Si no hay valores de retorno se omiten los corchetes y el signo igual (=).5. Las variables definidas dentro de una función son variables locales. dichas variables permanecen en memoria. Dichos comandos se ejecutan sucesivamente cuando se teclea el nombre del archivo que los contiene (sin la extensión). y entre paréntesis también separados por comas los argumentos.5 Archivos *.5. es decir cuando se teclea file1 con el ejemplo considerado. Entre corchetes y separados por comas van los valores de retorno (siempre que haya más de uno).2 DEFINICIÓN DE FUNCIONES La primera línea (que no sea una línea de comentario) de un archivo llamado name. que pueden ser múltiples y matriciales.1 ARCHIVOS DE COMANDOS (SCRIPTS) Como ya se ha dicho. Los resultados de una función de MATLAB se obtienen siempre a través de los valores de retorno. En los archivos de comandos conviene poner los puntos y coma (.m.m 4. 4. A su vez. Este archivo se ejecuta cada vez que se entra en MATLAB. Tampoco hace falta poner paréntesis si no hay argumentos. Recordemos que los argumentos son los datos de la función y los valores de retorno sus resultados.m puede llamar a otros archivos *.m que contienen una sucesión de comandos análoga a la que se teclearía en el uso interactivo del programa. si sólo hay un valor de retorno no hace falta poner corchetes. los archivos de comandos (o de guión) o scripts son archivos con un nombre tal como file1. Una función no modifica nunca los argumentos que recibe. Página 23 de 32 . esto es variables con el mismo carácter que las que se crean interactivamente en MATLAB si el archivo se ha ejecutado desde la línea de comandos. para evitar una salida de resultados demasiado cuantiosa.m que define una función tiene la forma: function [lista de valores de retorno] = name(lista de argumentos) donde name es el nombre de la función (es recomendable que el nombre del archivo coincida con el nombre de la función). por ejemplo format long y los comandos necesarios para modificar el path.m. Métodos Computacionales – Informática Aplicada 4. En él puede introducir todos aquellos comandos que le interesa se ejecuten siempre al iniciar la sesión.) al final de cada sentencia. Puede haber funciones sin valor de retorno y también sin argumentos.

Si se quiere forzar el que una función termine de ejecutarse se puede utilizar la sentencia return. 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 Página 24 de 32 . MATLAB dispone de cuatro 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. cuando se teclea en la ventana de comandos de MATLAB: » help mi_func el programa responde escribiendo las primeras líneas del archivo mi_func. Por razones de eficiencia. En otras palabras.1 Funciones gráficas 2D elementales Los gráficos 2-D de MATLAB están fundamentalmente orientados a la representación gráfica de vectores (y matrices). Gráficos bidimensionales 5. los argumentos que recibe una función de MATLAB no se copian a variables locales si no son modificados por dicha función (se diría que se pasan por referencia). 5.m que comienzan por el carácter (%). que devuelve inmediatamente el control al entorno de llamada. antes se sacan copias de dichos argumentos a variables locales y se modifican las copias (se diría que en este caso los argumentos se pasan por valor). Sin embargo. Esto se consigue de la siguiente forma: las primeras líneas de comentarios de cada archivo de función son muy importantes. los valores de retorno deben ser calculados en algún momento. La ejecución de una función termina cuando se llega a su última sentencia ejecutable. es decir. Dentro de la función. Métodos Computacionales – Informática Aplicada Se puede decir que dichas variables pertenecen al propio espacio de trabajo de la función y no son vistas desde otros espacios de trabajo. si dentro de la función se realizan modificaciones sobre los argumentos recibidos. bien añadiendo nuevos elementos gráficos a un dibujo anterior. análogo al que tienen las propias funciones de MATLAB. Ciertos comandos abren una ventana nueva y otros dibujan sobre la ventana activa. pues permiten construir un help sobre esa función. Esto tiene importantes consecuencias en términos de eficiencia y ahorro de tiempo de cálculo. Estas cuatro funciones son las siguientes: plot() crea un gráfico a partir de vectores y/o columnas de matrices. También las funciones creadas por el usuario pueden tener su help. bien sustituyendo lo que hubiera en ella. que son comentarios. con escalas lineales sobre ambos ejes. MATLAB utiliza un tipo especial de ventanas para realizar las operaciones gráficas.

Métodos Computacionales – Informática Aplicada semilogy() ídem con escala lineal en el eje de abscisas y logarítmica en el eje de ordenadas En lo sucesivo se hará referencia casi exclusiva a la primera de estas funciones (plot). Un ejemplo muy sencillo de esta función. La función plot(). » plot(x. Observemos el siguiente ejemplo: » x = 0:pi/100:pi. En la pantalla de la computadora se puede ver que MATLAB utiliza por defecto el color blanco para el fondo de la pantalla y otros colores más oscuros para los ejes y las gráficas. Las demás se pueden utilizar de un modo similar. Una segunda forma de utilizar la función plot() es con dos vectores como argumentos. que se representan en abscisas. no hace otra cosa que dibujar vectores. n del mismo en abscisas. 2 ó 3 caracteres para indicar colores y tipos de línea. dicha función dibuja en ordenadas el valor de los n elementos del vector frente a los índices 1. 2. los distintos puntos del gráfico se unen con una línea continua. 5. Veamos por ejemplo cómo se puede dibujar un cuadrilátero de esta forma (observemos que para dibujar un polígono cerrado el último punto debe coincidir con el primero): » x = [1 6 5 2 1]. es el siguiente: » x = [1 3 2 4 5 3] x = 1 3 2 4 5 3 » plot(x) El resultado de este comando es que se abre una ventana mostrando un gráfico donde por defecto. en sus diversas variantes.2 Función plot Esta es la función clave de todos los gráficos 2-D en MATLAB. » y = [1 0 4 3 1]. donde el primer y último valor sean los valores extremos entre los cuales se desea graficar. Ya hemos dicho que el elemento básico de los gráficos bidimensionales es el vector. Luego se debe evaluar la función en dichas abscisas y posteriormente graficar con la función plot(). . Cuando a la función plot() se le pasa un único vector como argumento. En este caso los elementos del segundo vector se representan en ordenadas frente a los valores del primero. el color que se utiliza para la línea es el azul. » plot(x.y) Pero uno de los usos más importantes de la función plot() es poder graficar funciones matemáticas. Se utilizan también cadenas de 1. También por defecto. y el incremento sea lo suficientemente pequeño como para que los distintos puntos del gráfico que se unen con una línea recta simulen ser una curva continua. para ello se debe definir un vector de abscisas utilizando el operador dos puntos. » y = sin(x)...y) Página 25 de 32 . en el que se le pasa un único vector como argumento.

magenta.1 COLORES.sin(x)) La función plot() permite también dibujar múltiples curvas introduciendo varias parejas de vectores como argumentos. cyan. para las sucesivas líneas se utilizan colores que son permutaciones cíclicas del azul. z = cos(x). Si el usuario no decide otra cosa. el conjunto básico de argumentos de esta función es una tripleta formada por dos vectores y una cadena de 1. verde.y.2. » plot(x. En realidad. frente a los valores de otro vector en abscisas. » y = sin(x). En este caso. En el caso general esto exige que se pasen como argumentos un par de vectores. Tipo de marca Símbolo Puntos . rojo. Círculos o Marcas en x x Marcas en + + Marcas en * * Por ejemplo. Observemos bien cómo se dibujan el seno y el coseno en el siguiente ejemplo: » x = 0:pi/25:6*pi. que se representan en abscisas. cada uno de los segundos vectores se dibujan en ordenadas como función de los valores del primer vector de la pareja. Color Símbolo Azul b Verde g Rojo r Cyan c Magenta m Amarillo y Negro k Tipo de línea Símbolo Continua - A trazos -- Punteada : A trazos y puntos -. » plot(x.z) 5. En la tabla siguiente se pueden observar las distintas posibilidades. se pueden graficar los datos con marcas sin estar conectados por líneas de la siguiente manera: Página 26 de 32 . ESTILOS DE LÍNEA Y MARCADORES EN LA FUNCIÓN PLOT En la sección anterior se ha visto cómo la tarea fundamental de la función plot() era dibujar los valores de un vector en ordenadas. 2 ó 3 caracteres que indica el color y el tipo de línea o de marker. amarillo y negro.x. Métodos Computacionales – Informática Aplicada Los dos últimos comandos anteriores se podrían haber resumido en un único comando de la siguiente forma: » x = 0:pi/100:pi.

cada elemento se escribe en las coordenadas correspondientes grid Con grid on se activa la inclusión de una cuadrícula en el dibujo. 5.4:10.y) » hold on » y2 = cos(x). a cada uno de los ejes.y. El primero de ellos hace que los gráficos sucesivos respeten los que ya se han dibujado en la figura (es posible que haya que modificar la escala de los ejes). » plot(x. para graficar con líneas a trazos: » plot(x.4*x).'g') También es posible combinar marcas y colores: » plot(x.y. Por ejemplo. » plot(x. Con grid off desaparece la cuadrícula Página 27 de 32 . Si se desea graficar con un tipo de línea en particular. Estas funciones son las siguientes: title('título') añade un título al dibujo xlabel('abscisas') añade una etiqueta al eje de abscisas. Con xlabel off desaparece ylabel('ordenadas') añade una etiqueta al eje de ordenadas.'--') Los símbolos del color se utilizan igual que los tipos de línea: » plot(x. » y = sin(x).3 Añadir nuevos elementos a un gráfico ya existente Existe la posibilidad de añadir líneas a un gráfico ya existente.y2) » hold off Existen además otras funciones orientadas a añadir títulos al gráfico. El siguiente ejemplo muestra cómo se añade la gráfica del coseno a la gráfica del seno previamente creada: » x = 0:pi/100:pi. el texto se repite por cada par de elementos.'g+') en este último caso se grafican los datos con marcas + de color verde. etc.*exp(-0. Si x e y son vectores. se debe indicar específicamente. Si texto es también un vector de cadenas de texto de la misma dimensión.'+') El tipo de línea por omisión es el continuo. Se utilizan para ello los comandos hold on y hold off.y.'texto') introduce 'texto' en el lugar especificado por las coordenadas x e y. sin destruirlo o sin abrir una nueva ventana. » y = sin(x). Métodos Computacionales – Informática Aplicada » x = 0:0.y. a dibujar una cuadrícula auxiliar. Con ylabel off desaparece text(x.y. a introducir texto. » plot(x. el comando hold off deshace el efecto de hold on.

que en algunas ocasiones puede interesar cambiar. se utiliza el comando: axis([xmin. de cara a posibles nuevas gráficas añadidas con hold on axis('xy') utiliza ejes cartesianos normales. y el eje j en dirección vertical descendente axis('equal') el escalado es igual en ambos ejes axis('square') la ventana será cuadrada axis('normal') elimina las restricciones introducidas por ’equal’ y ’square’ axis('off') elimina las etiquetas. ’cadena’. limites. El comando básico es el comando axis. El máximo número de valores en x es (1/tol)+1 Página 28 de 32 . xmax. o modo automático. 'cadena' tiene el mismo significado que en plot y permite controlar el color.ymax]. los números y los ejes axis('on') restituye las etiquetas.5 Función fplot La función fplot admite como argumento un nombre de función o un nombre de archivo *. con el origen en la esquina superior izda. ymax]) mientras que : axis(’auto’) devuelve el escalado de los ejes al valor por defecto o automático. limites es un vector de 2 ó 4 elementos que puede tomar los valores [xmin. Para definir de modo explícito los valores máximo y mínimo según cada eje. tol es la tolerancia de error relativo. La función puede ser escalar (un único resultado por cada valor de x) o vectorial. MATLAB ajusta la escala de cada uno de los ejes de modo que varíe entre el mínimo y el máximo valor de los vectores a representar. Métodos Computacionales – Informática Aplicada 5. xmax. ymin. Otros posibles usos de este comando son los siguientes: v=axis devuelve un vector v con los valores [xmin. La forma general de esta función es la siguiente: fplot(’funcion’. los números y los ejes 5.m en el cual esté definida una función de usuario. y el eje y vertical ascendente axis('ij') utiliza ejes de pantalla. El valor por defecto es 2e-03. tol) donde: 'funcion' representa el nombre de la función o del fichero *. ymax] axis(axis) mantiene los ejes en sus actuales valores. Por defecto.xmax. los markers y el tipo de línea.m entre apóstrofos (pasado como cadena de caracteres).xmax] o [xmin. Este es el llamado modo "auto". con el origen en la esquina inferior izda. ymin.ymin.4 Control de los ejes También en este punto MATLAB tiene sus opciones por defecto.

1). [-20 20].y) » subplot(2.*z.1). Después hay que llamar a la función delete con ese valor como argumento. En cambio el comando cla borra las curvas graficadas y redibuja los ejes. etc. plot(x. siguiendo por las de la segunda. Cada una de estas subventanas tiene sus propios ejes. plot(x./x. es decir. Página 29 de 32 . plot(x. w = exp(-x*. » delete(v) El comando clf elimina el contenido de la ventana gráfica. 'g') 5. plot(x. Se puede intentar también cambiar los tipos de línea. y a continuación se ejecuta el comando: » fplot('mifunc'. hay que preverlo de antemano.0.n.2).2. Por ejemplo.1. » subplot(2. e i es la subdivisión que se convierte en activa.6 Función subplot Una ventana gráfica se puede dividir en m particiones horizontales y n verticales. Métodos Computacionales – Informática Aplicada Veamos un ejemplo de utilización de esta función.3).1) 5.2. de hecho. la siguiente secuencia de comandos genera cuatro gráficos en la misma ventana: » y = sin(x).*y.w) » subplot(2.2.4). Para volver a la opción por defecto basta teclear el comando: » subplot(1. Considérese el siguiente ejemplo: » v = text(1. v = y.2. Para poder hacerlo hay que recuperar previamente el valor de retorno del comando con el cual se ha creado. con objeto de representar múltiples gráficos en ella. la deja abierta pero vacía.i) donde m y n son el número de subdivisiones en filas y columnas.v) Se puede practicar con este ejemplo añadiendo títulos a cada subplot.m que contenga las líneas siguientes: function y = mifunc(x) y = 200*sin(x). La forma general de este comando es: subplot(m. aunque otras propiedades son comunes a toda la figura.z) » subplot(2. z = cos(x).7 Eliminar elementos de un gráfico ya existente Borrar texto (u otros elementos gráficos) es un poco más complicado. Se comienza creando un archivo llamado mifunc.'seno'). así como rótulos para los ejes. Las subdivisiones se numeran consecutivamente empezando por las de la primera fila.

Su forma más sencilla es la siguiente: » plot3(x. figure(gcf) » axis([-12. y(2).'g') » title('Función seno(x) -en rojo. El valor de retorno es dicho número. observando con cuidado los efectos de cada una de ellas en la ventana activa. z(1)).y.y.1. figure(gcf) » axis('normal'). El comando figure(gcf) (get current figure) permite hacer visible la ventana de gráficos desde la ventana de comandos. ejecutemos las siguientes instrucciones de MATLAB. figure(gcf) 6. 2 ó 3 caracteres para determinar el color.cos(x). y(1).'r+') Ejecutemos los siguientes comandos que dibujan una línea espiral: » fi = [0:pi/20:6*pi]. se crea una nueva ventana con el número consecutivo que le corresponda (que se puede obtener como valor de retorno del comando).sin(fi). figure(gcf) » axis('square').'g') Página 30 de 32 .'r'. los markers.5]).y función coseno(x) -en verde-') » xlabel('ángulo en radianes'). el comando figure(n) hace que la ventana n pase a ser la ventana o figura activa. » plot3(cos(fi). Al igual que en el caso plano. Métodos Computacionales – Informática Aplicada 5. Para practicar un poco con todo lo que se acaba de explicar. y el tipo de línea: » plot3(x. z(2)).z) que dibuja una línea que une los puntos (x(1). y la proyecta sobre un plano para poderla representar en la pantalla.z. grid on. figure(gcf) » axis('off'). » x = -4*pi:pi/20:4*pi.x. mientras que close(n) cierra la ventana o figura número n. se puede incluir una cadena de 1. Si dicha ventana no existe.12. figure(gcf) » axis('on'). Gráficos tridimensionales 6.8 Control de ventanas gráficas: Función figure Si se llama a la función figure sin argumentos. se crea una nueva ventana gráfica con el número consecutivo que le corresponda.5. La función close cierra la figura activa. Por otra parte.1 Dibujo de líneas: función plot3 La función plot3 es análoga a su homóloga bidimensional plot. (x(2). » plot(x. La función gcf devuelve el número de la figura activa en ese momento.-1. etc. figure(gcf) » axis('on'). figure(gcf) » axis('equal'). figure(gcf) » ylabel('valor de la función trigonométrica').fi.sin(x).

Después hay que crear dos matrices X (cuyas filas son copias de x) e Y (cuyas columnas son copias de y). que tiene la siguiente forma: view(azimut. y pueden tomar valores positivos y negativos (sus valores por defecto son -37.j)). El color depende del valor z de la función.j). rodeando cuadriláteros del color de fondo.^2-Y.Z) y observemos la diferencia. Se verá que también se pueden dibujar los elementos de una matriz como función de los dos índices.Y. Y y Z como argumentos. también con eliminación de líneas ocultas. medido sobre el eje z a partir del eje x en sentido antihorario. con eliminación de líneas ocultas.3 Otros elementos de los gráficos tridimensionales Las funciones surf y mesh dibujan funciones tridimensionales en perspectiva.Z(i. De esta forma se dibuja una superficie cuyos puntos tienen como cordenadas (X(i. » Z = X. En vez de líneas aparece ahora una superficie faceteada.y)) sobre un dominio rectangular. elev) donde azimut es el ángulo de rotación de un plano horizontal. » mesh(X. Estas matrices se crean con la función meshgrid y representan respectivamente las coordenadas x e y de todos los puntos de la retícula.*exp(-X.Y] = meshgrid(x. 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): Página 31 de 32 . El color de las facetas depende también del valor de la función. Sean x e y dos vectores que contienen las coordenadas en una y otra dirección de la retícula (grid) sobre la que se va a dibujar la función.j). » [X.2:2. La matriz de valores Z se calcula a partir de las matrices de coordenadas X e Y.5 y 30). mesh y surf Ahora se verá cómo se puede dibujar una función de dos variables (z=f(x. » y = x. Ejecutemos ahora el comando: » surf(X. Finalmente hay que ejecutar la función mesh con las matrices X.2 Dibujo de mallas: funciones meshgrid. Veamos como ejemplo el dibujo de la función x*exp(-x^2-y^2): » x = -2:0.Y.^2).Y(i.y). Métodos Computacionales – Informática Aplicada 6. 6. y elev es el ángulo de elevación respecto al plano (x-y). La localización del punto de vista o dirección de observación se puede hacer mediante la función view. Ambos ángulos se miden en grados.Z) Se habrá podido comprobar que la función mesh dibuja en perspectiva una función en base a una retícula de líneas de colores.

Página 32 de 32 . Cuando una parte de los elementos de la matriz de valores Z son NaNs. axis('auto'). por ejemplo: axis([xmin. axis(axis).zd]) En los gráficos tridimensionales existen funciones para controlar los ejes. El comando hidden on/off activa y desactiva la eliminación de líneas ocultas.zmax]) También se pueden utilizar las funciones siguientes: xlabel. etc.ymax. zlabel. a veces también son útiles los NaNs. Las funciones mesh y surf disponen de un algoritmo de eliminación de líneas ocultas (los polígonos o facetas. no dejan ver las líneas que están detrás).zmin.ymin. permitiendo ver el resto de la superficie. Métodos Computacionales – Informática Aplicada view([xd. esa parte de la superficie no se dibuja. En el dibujo de funciones tridimensionales.xmax. ylabel.yd.