Apuntes de MATLAB
Álvaro Bustinduy Candelas
El paquete MATLAB (MATrix
LABoratory) es un entorno interactivo basado en el cálculo de
matrices.
En este seminario nos
proponemos dar una introducción
básica al manejo de este programa.
CONTENIDOS
Tengamos
en cuenta que :
- MATLAB distingue entre mayúsculas y minúsculas.
- Los comentarios, que vendrán en color morado, deben ir precedidos por % para que MATLAB los ignore.
- Las órdenes ejecutadas por MATLAB con anterioridad pueden recuperarse siempre con las teclas <ARRIBA> y <ABAJO>.
- Con diary nombre_fichero MATLAB ordena grabar en un fichero la sesión de todo lo que se ha visto por pantalla hasta que se ejecuta diary off. Si se quiere volver a guardar se ejecuta la de nuevo la orden diary off.
- Para acceder a la ayuda de MATLAB basta teclear help en la ventana de órdenes, donde se puede encontrar información sobre
En MATLAB
se
pueden realizar las operaciones aritméticas siguientes:
+ Sumar
-
Restar
*
Multiplicar
/
Dividir
^
Elevar a una potencia
Cuando los
cálculos que se hacen no se asignan
a una variable determinada
se asignan por defecto a la variable de respuesta ans.
Ejemplo.
EDU>> 5+3
ans =
8
En cambio, cuando el
cálculo se asigna a una variable
en concreto, el resultado queda
guardado en ella.
Ejemplo.
EDU>> x=8+7
x =
15
Si queremos conocer el
valor de una variable, es suficiente
con escribir su nombre.
Ejemplo.
EDU>> x
x =
15
Cuando añadimos un
punto y coma (;)
al final de una instrucción, entonces no se muestra la respuesta
en la ventana de órdenes.
Ejemplo.
EDU>> y=6*8;
... pero no por ello deja de realizarse el cálculo.
EDU>> y
y =
48
Existe un orden de
prioridad en el que se efectúan
las operaciones: primero las potencias, después las
multiplicaciones
y divisiones y, finalmente, las sumas y restas. Las operaciones de
igual
prioridad se evalúan de izquierda a derecha.
Ejemplos.
EDU>> 2/4*3
ans =
1.5000
EDU>> 2/(4*3)
ans =
0.1667
Para definir un vector fila, es suficiente escribir
sus coordenadas entre corchetes.
Ejemplo:
EDU>> v=[2 4 6] % Vector de 3 coordenadas
v=
2 4 6
EDU>>
w=[1
2 3];
El operador ' es el de trasposición (en realidad trasposición y conjugación):
EDU>> w'
ans =
1
2
3
Otra manera muy
útil en que podemos declarar vectores
con MATLAB
es la siguiente:
supongamos que queremos construir un vector tal que la diferencia entre
dos cualesquiera de sus coordenas consecutivas sea una cantidad
constante,
por ejemplo, que la primera sea 0, la última 10 y
la
distancia entre dos consecutivas sea 2, basta escribir:
EDU>>
vector1=[0:2:10]
vector1 =
0 2 4 6 8 10
Si lo que conocemos del
vector es que la primera coordenada
vale 0, la última 10 y que tiene 6 en total, escribiremos:
EDU>> vector2=linspace(0,10,6)
vector2 =
0 2 4 6 8 10
MATLAB permite
acceder a partes específicas de un vector con la misma
notación
que hemos utilizado para crearlos.
Ejemplos.
EDU>>
vector2(1:3)
%las tres primeras coordenadas de vector2
ans =
0 2 4
EDU>> vector2(3) %segunda coordenada de vector2
ans
=
4
EDU>>
vector2(1:2:4)
%las
dos primeras cordenadas impares de vector2
ans =
0 4
Casi todos los comandos
básicos de MATLAB
se
resuelven utilizando matrices.
Las matrices 1x1 se ven como escalares y las matrices
con una fila o columna se interpretan como vectores. En MATLAB
las
matrices se escriben como los vectores, pero separando las filas
mediante un punto y coma o un retorno de carro.
Ejemplos.
EDU>> M=[1
2 3;4 5 6;7 8 9] %Asignamos a la variable
M una
%matriz 3x3
M =
1 2 3
4 5 6
7 8 9
EDU>> M' %Su traspuesta (su adjunta)
ans =
1 4 7
2 5 8
3 6 9
EDU>> N=[7
4 6 %Asignamos a la variable
N
una matriz 3x3
3 5 8
3 9 10]
N =
7 4 6
3 5 8
3 9 10
Otra posibilidad para
crear matrices es adjuntar vectores.
Ejemplo.
EDU>>
L=[vector1
%Asignamos a la variable L una matriz 2x6
0 0 0 0 0 1]
%resultado de adjuntar dos vectores
L =
0 2 4 6 8 10
0 0 0 0 0 1
Cada elemento de una
matriz (entrada) se identifica
escribiendo el nombre de la matriz y, entre
paréntesis,
sus respectivos índices:
Ejemplo.
EDU>> L(1,3) %Elemento en la primera fila y tercera columna de L
ans =
4
También se puede
acceder a un fila o columna entera.
Ejemplo.
EDU>> L(:,2) % Segunda columna de L
ans =
2
0
EDU>> L(2,:) % Su segunda fila de L
ans =
0 0 0 0 0 1
Acceder a la matriz como
si fuera una columna.
Ejemplo.
EDU>> L(3:10)
% Las
entradas
tercera a décima de L como columna
ans =
2 0 4 0 6 0 8 0
o acceder a cualquiera de
sus submatrices
EDU>> L(1:2,[1
3]) % Submatriz formada por
los
elementos que
% están en las dos primeras filas y en la
ans
=
% primera y tercera columnas.
0
4
0 0
Se puede conocer siempre el tamaño de una matriz
y la longitud de un vector:
EDU>>
size(L)
%Dimensiones de la matriz L (número
de
%filas y de columnas)
ans =
2 6
EDU>> size(vector1)
ans =
1 6
Podemos definir algunas matrices especiales como, por
ejemplo, la matriz identidad:
En MATLAB
se
pueden realizar las operaciones siguientes:
+ Sumar
-
Restar
*
Multiplicar
^
Elevar a una potencia
'
Trasponer
Para operar dos matrices
han de tener tamaño compatible
con esa operación.
MATLAB
da
lugar a a un mensaje de error, por ejemplo si se suman dos matrices no
escalares con diferente número de filas o columnas.
Ejemplos.
EDU>>
B=[2
4;6 8];
EDU>>
B*[1,2]
??? Error using ==>
*
Inner matrix
dimensions
must agree.
EDU>> B*[1,2]'
ans =
10
22
EDU>> C=B'
C =
2 6
4 8
EDU>> 3*(B*C)^4
ans =
100005888 226068480
226068480
511039488
Una de las características de MATLAB es que dispone de un gran número de funciones que
actúan sobre un a matriz entrada a entrada. La suma, resta y
producto por un escalar se realizan
elemento a elemento, sin embargo, elevar a una potencia, multiplicar y
dividir no. Estas operaciones pueden hacerse entrada a entrada
anteponiendo un punto al símbolo de la operación
correspondiente: .*,
./ y .^ .
Ejemplos.
EDU>> A=[1 3 5; 7 9 11; 13 15 17]; A^3 %
Calcula el producto AAA
ans =
2421 3051 3681
6255 7857 9459
10089 12663 15237
ans =
-2