Introducción al matlab
Estadı́stica – Facultad de Fı́sica
Objetivos
• Manejo de matrices
1 matlab
matlab es al mismo tiempo un lenguaje y un entorno de programación técnica que per-
mite cálculos numéricos de alto nivel y su visualización. Integra análisis numérico, cálculo
matricial, proceso de señal y gráficos en un entorno sencillo.
matlab incorpora aplicaciones especı́ficas llamadas toolboxes. Estos son colecciones
especializadas de funciones y programas especiales de matlab (ficheros-M porque su nombre
tiene extensión .M) para trabajar en clases particulares de problemas. Uno de ellos está
dedicado a la estadı́stica.
Este entorno permite una fácil extensión ya que el usuario puede escribir sus propias apli-
caciones. La programación es más sencilla que los lenguajes tradicionales como Fortran o C.
Las aplicaciones se guardan en ficheros-M que pueden ser empleados en cualquier momento.
2 Inicio
matlab corre desde windows en los ordenadores PC compatibles del aula de informática.
Para ponerlo en marcha se selecciona el icono en el administrador de programas. Se abre
entonces una ventana llamada Ventana de Comandos (Command Window) desde la que se
teclean los comandos. Tambien puede abrirse otra Ventana de Ayuda (matlab Help) en
la que el acceso a las ayudas es el estándar de windows. Otra forma de obtener ayuda es
utilizando el comando Help desde dentro de la ventana de comandos. Por último podemos
encontrar un comando cuyo nombre no recordamos o buscar si existe información relativa a
un tema con el comando lookfor seguido de una palabra clave (por ejemplo lookfor mode).
Este comando busca una cadena de caracteres en la primera linea de comentario del texto
de ayuda de todos los ficheros-M. Lo más importante es que la palabra clave no necesita ser
una orden de matlab .
3 MATRICES 2
3 Matrices
Se pueden generar matrices de cuatro formas diferentes:
A =
1 2 3
4 5 6
9 8 7
y esta matriz es reservada por matlab para su uso posterior. Otra manera de crear
esta matriz serı́a,
≫ A =[1 2 3 ←֓
4 5 6 ←֓
9 8 7] ←֓
A =[ 1 2 3
4 5 6
9 8 7 ]
1940 3.8 8.2 11.8 12.8 15.6 19.3 24.0 24.1 19.2 12.0 7.8 3.8
1941 3.4 7.0 9.6 11.1 13.1 20.0 23.2 22.2 20.0 15.0 7.5 4.4
1942 4.8 4.4 10.0 12.2 16.2 20.9 23.8 23.4 18.9 15.0 8.6 5.6
1943 6.2 6.8 9.2 14.2 17.6 23.0 22.2 24.4 18.8 14.0 7.6 5.8
..........................................................................
1955 8.4 6.7 8.3 14.8 18.6 20.4 24.4 23.9 19.3 13.9 8.8 7.7
..........................................................................
1988 7.8 7.6 11.7 12.5 15.5 18.2 24.2 25.3 21.6 15.5 10.3 6.6
1989 6.7 8.7 12.6 11.0 18.4 22.2 26.7 26.0 19.8 16.6 11.9 9.5
1990 6.5 11.0 11.5 11.3 17.8 23.4 26.4 25.8 22.1 14.7 9.3 5.3
Vemos que están tabulados de forma que cada fila proporciona los datos de un año y
que las columnas muestran los datos de cada mes. Ası́, por ejemplo, la columna 4 de
la fila 3 contiene la temperatura media de marzo de 1942 que resulta ser 10o C.
Para formar una matriz con esta tabla de datos sólo debemos leer el fichero con el
comando load. Nuestros ficheros se encuentran en un directorio de trabajo llamado
work y que es un subdirectorio de c:\matlab. Este subdirectorio es donde el comando
load busca por defecto ası́ que el comando para situarnos en él (cd c:\matlab\work)
no es necesario,
≫ load retirot.dat ←֓
Si el fichero se encontrara en la unidad de disco A:, teclearı́amos,
≫ load a:retirot.dat ←֓
La tabla ya está en memoria en la variable retirot, para comprobarlo tecleamos,
≫ whos ←֓
a 3 by 3 9 72 Full No
retirot 51 by 13 663 5304 Full No
x 1 by 3 3 24 Full No
4 MANIPULACIÓN DE VECTORES Y MATRICES 4
y podemos ver que en memoria tenemos las variables que generamos antes (a y x) y
retirot que es una matriz de 51 (años) por 13 (columna 1 que da el año + 12 meses).
La temperatura media de marzo de 1942 será entonces el elemento (3,4) de la matriz.
≫ retirot(3,4) ←֓
ans=
10
En el siguiente apartado aprenderemos cómo seleccionar las temperaturas medias de un
mes para un intervalo de años o cómo generar un vector que contenga las temperaturas
medias de un cierto año.
Tambien es posible extraer matrices que son parte de matrices (bloques) usando la no-
tación de dos puntos (:), ası́ por ejemplo,
≫ A = A(1:3,:); ←֓
toma las tres primeras filas y todas las columnas de la matriz A actual, con lo cual A vuelve
a ser la matriz que tenı́amos anteriormente. En esta expresión hemos utilizado de nuevo un
signo de punto y coma (;) para que matlab calcule pero no nos imprima en pantalla el
resultado de la operación.
Los vectores se pueden generar de una manera sencilla usando el carácter (:). Por
ejemplo,
Es evidente que este método nos sirve para generar tablas. Para que el formato sea tabu-
lar (vectores columna) podemos hallar la transpuesta del vector, utilizando en su definición
el sı́mbolo (’). En los siguientes comandos generaremos un vector columna, calcularemos
una función para esos valores y formaremos una matriz con esos dos vectores
0 0
0.2500 0.2474
0.5000 0.4794
0.7500 0.6816
1.0000 0.8415
1.2500 0.9490
1.5000 0.9975
1.7500 0.9840
2.0000 0.9093
2.2500 0.7781
2.5000 0.5985
2.7500 0.3817
3.0000 0.1411
4 MANIPULACIÓN DE VECTORES Y MATRICES 6
Por lo tanto, utilizando el operador transpuesta se puede cambiar el formato de vector fila a
vector columna y viceversa. Si directamente deseamos generar un vector columna utilizamos
(;) entre sus elementos. Comprueba el resultado del comando ≫ c=[1;2;4] ←֓ .
Otra forma de generar vectores consiste en utilizar las funciones logspace, que crea
vectores formados por elementos espaciados logarı́tmicamente, y linspace que permite es-
pecificar el número de puntos en lugar del incremento.
≫ k = linspace (-pi,pi,4) ←֓
k=
-3.1416 -1.0472 1.0472 3.1416
Como se vió antes los elementos de las matrices pueden referenciarse por medio de los
subı́ndices. Ası́ si tenemos la matriz de antes A.
≫ A ←֓
A =
1 2 3
4 5 6
9 8 7
Un subı́ndice puede ser un vector. Para entender ésto veamos cómo se pueden selec-
cionar submatrices a partir de una matriz. Si T es una matriz de 6 × 6, entonces T1 =
T(1:2,2:4); genera una matriz 2 × 3 formada por las filas 1 y 2 y las columnas 2, 3 y 4.
Y para seleccionar una sola columna (por ejemplo la tercera) de esa matriz escribirı́amos T2
= T(1:6,3). Se comprende que ésto nos será muy útil para seleccionar filas y columnas de
una tabla de datos como veremos más adelante. Una construcción que nos será tambien de
utilidad es la siguiente
4
6
Con el segundo comando hemos almacenado en el vector fecha la serie de años que cubren
nuestros datos. De igual manera podemos almacenar en un vector la variación anual de la
temperatura media para 1955. Como los datos empiezan en 1940, la fila que corresponde a
1955 es la 16. Podemos comprobarlo,
El vector t1955, que contiene los datos requeridos, es el resultado de recortar la matriz entre
las columnas 2 y 13 (meses de enero a diciembre).
≫ plot(t1955) ←֓
Abre una ventana de windows para los gráficos y representa el vector t1955 frente a su
ı́ndice. Se puede apreciar que la temperatura media es mayor en los meses de verano, como
esperábamos. Se pueden probar alternativas en otros colores como el verde,
Para ver qué sı́mbolos y qué colores puedes utilizar busca la ayuda de plot tecleando help
plot o mira la tabla al final de este guión. Tambien podemos representar la variación esta-
cional en otro año (1966 por ejemplo) y comprobar si es parecida,
5 REPRESENTACIONES GRÁFICAS SENCILLAS 8
si queremos ver ambas gráficas a la vez pintamos una y luego la otra pero sin borrar la an-
terior utilizando el comando hold que mantiene la pantalla con los dibujos anteriores hasta
que tecleemos hold off,
Como ejercicio se puede representar cómo variaron a lo largo del intervalo de tiempo
muestreado las temperaturas medias de enero, mayo y agosto.
O mejor representamos un gráfico tipo y frente a x con temperaturas medias de enero para
cada año ya que el indice de este vector representa años consecutivos desde 1940 que están
almacenados en el vector fecha.
≫ plot(fecha,t1) ←֓
Si no estamos utilizando monitores de color, resulta útil pintar las lı́neas en estilos diferentes
cuando varias funciones se representan en el mismo gráfico,
5 REPRESENTACIONES GRÁFICAS SENCILLAS 9
Y ya para demostrar que el comando puede ser mucho más complicado y completo,