Está en la página 1de 14

Apuntes de MATLAB

lvaro Bustinduy Candelas







El paquete MATLAB (MATrix LABoratory) es un entorno interactivo
basado en el clculo de matrices.
En este seminario nos proponemos dar una introduccin bsica al manejo
de este programa.


CONTENIDOS
1. Acceso a MATLAB
2. Operaciones aritmticas
3. Vectores y matrices
4. Operaciones con matrices
5. Polinomios
6. Programacin con MATLAB



1. ACCESO A MATLAB
Se inicia ejecutando la aplicacin MATLAB dentro del entorno que
estamos utilizando (en nuestro caso un PC y un sistema operativo de tipo
WINDOWS). A continuacin, aparecer una ventana (que llamamos
ventana de rdenes). Para comunicarse con MATLAB
el usuario debe escribir los datos o instrucciones (que mostramos en
color rojo con letra mquina de escribir) a continuacin del
smbolo EDU>>.

. Una vez escrito lo que desea el usuario, si se pulsa la tecla de retorno,
aparece en color negro la respuesta dada por MATLABa la instruccin
tecleada.

Tengamos en cuenta que :
MATLAB distingue entre maysculas y minsculas.
Los comentarios, que vendrn 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 sesin 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 ordendiary off.
Para acceder a la ayuda de MATLAB basta
teclear help en la ventana de rdenes, donde se puede
encontrar informacin sobre



2. OPERACIONES ARITMTICAS

En MATLAB se pueden realizar las operaciones aritmticas siguientes:
+ Sumar
- Restar
* Multiplicar
/ Dividir
^ Elevar a una potencia

Cuando los clculos 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 clculo 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 aadimos un punto y coma (;) al final de una instruccin,
entonces no se muestra la respuesta
en la ventana de rdenes.
Ejemplo.
EDU>> y=6*8;
... pero no por ello deja de realizarse el clculo.
EDU>> y
y =
48

Existe un orden de prioridad en el que se efectan las operaciones:
primero las potencias, despus las multiplicaciones y divisiones y,
finalmente, las sumas y restas. Las operaciones de igual prioridad se
evalan de izquierda a derecha.
Ejemplos.
EDU>> 2/4*3
ans =
1.5000
EDU>> 2/(4*3)
ans =
0.1667


3. VECTORES Y MATRICES

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 trasposicin (en realidad trasposicin y
conjugacin):
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 especficas de un vector con la misma
notacin 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 bsicos 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 parntesis, sus respectivos
ndices:
Ejemplo.
EDU>> L(1,3) %Elemento en la primera fila y tercera
columna de L
ans =
4
Tambin 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 dcima 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
% estn en las dos primeras
filas y en la
ans = % primera y tercera columnas.
0 4
0 0

Se puede conocer siempre el tamao de una matriz y la longitud de un
vector:
EDU>> size(L) %Dimensiones de la matriz L (nmero 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:
EDU>> eye(3)

ans =
1 0 0
0 1 0
0 0 1

La matriz cuyas entradas son todas uno:

EDU>> ones(3)

ans =
1 1 1
1 1 1
1 1 1


La matriz cuyas entradas son todas cero:


EDU>> zeros(3)

ans =
0 0 0
0 0 0
0 0 0




4. OPERACIONES CON MATRICES

En MATLAB se pueden realizar las operaciones siguientes:
+ Sumar
- Restar
* Multiplicar
^ Elevar a una potencia
' Trasponer


Para operar dos matrices han de tener tamao compatible con esa
operacin.
MATLAB da lugar a a un mensaje de error, por ejemplo si se suman dos
matrices no escalares con diferente nmero 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 caractersticas de MATLAB es que dispone de un gran
nmero de funciones que
actan 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 smbolo de la operacin
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
EDU>> A.^3 % Calcula la potencia cbica de
cada entrada de A
ans =
1 27 125
343 729 1331
2197 3375 4913


EDU>> log(A) % Calcula el logaritmo de cada
entrada de A

ans =
0 1.0986 1.6094
1.9459 2.1972 2.3979
2.5649 2.7081 2.8332



5. POLINOMIOS

Con MATLAB se puede trabajar con polinomios de forma sencilla. Es
suficiente tener en cuenta que un polinomio no es nada ms que un
vector, en que el orden de los coeficientes va de mayor
a menor grado.
Ejemplos.

EDU>> p=[3 5 2 8 6] % 3*x^4+5*x^3+2*x^2+8*x+6

p =
3 5 2 8 6

EDU>> q=[6 2 1 7 8] % 6*x^4+2*x^3+x^2+7*x+8

q =
6 2 1 7 8

Adems, MATLAB incluye funciones especficas para operar con
polinomios. Por ejemplo,
si queremos evaluar lo que vale un polinomio en un punto.
Ejemplo.

EDU>> polyval(p,-1) % Evaluacin
de 3*x^4+5*x^3+2*x^2+8*x+6 en x=-1
ans =
-2
Tambin es posible multiplicar dos polinomios.
Ejemplo.

EDU>> conv(p,q) % producto de p por q

ans =
1 36 25 78 113 74 78 106 48

O obtener el cociente que se obtiene al dividirlos.

EDU>> deconv(p,q) % cociente resultado de dividir p
entre q

ans =
0.5000

EDU>> roots(p) % Raices del polinomio p

ans =
-1.7793
0.4292 + 1.1502i
0.4292 - 1.1502i
-0.7458



5. PROGRAMACIN CON MATLAB
El sistema MATLAB incluye las instrucciones tpicas de un lenguaje
estructurado:
for, while e if.

5.1 CONSTRUCCIN for
Con el bucle for se repite un conjunto de sentencias un nmero finito de
veces. Su esquema general es:
for variable = expresin, sentencias, end
o, lo que es lo mismo:
for variable = expresin
sentencias
end
En cada iteracin MATLAB guarda una columna de la expresin en la
variable, ejecutndose las sentencias hasta la siguiente sentencia end.
Ejemplo. Para calcular un vector cuyas componentes son los cinco
primeros nmeros naturales
bastara con escribir el siguiente bucle en la lnea de rdenes:

EDU>> for i=1:5, v(i)=i, end
v =
1

v =
1 2

v =
1 2 3

v =
1 2 3 4

v =
1 2 3 4 5
De esta forma vemos cmo se va construyendo el vector en cada iteracin.
Si slo desamos saber el resultado final aadimos un punto y coma al
final de la construccin del bucle:
EDU>> for i=1:5, v(i)=i; end, v
EDU>>
v=1 2 3 4 5


5.1 CONSTRUCCIN while
La construccin while repite un conjunto de sentencias mientras se
cumpla una condicin. Su esquema general es:

while condicin, sentencias
end
o, lo que es lo mismo:

while condicin
sentencias
end



5.1 CONSTRUCCIN if
La construccin if ejecuta un conjunto de sentencias si una condicin se
cumple. Su forma general es:

if condicin
sentencias
end
Tambin existe la opcin de que se ejecute otro conjunto de sentencias si
la condicin no se cumple:

if condicin
sentencias
else
sentencias
end
Lo ms practico cuando se programa en MATLAB es
editar ficheros.m.
Estos ficheros son ficheros de texto que contienen rdenes
de MATLAB. Para utilizarlos se siguen los siguientes pasos:
1. Escribimos el fichero en el editor de MATLAB o en cualquier
editor ASCII.
2. Lo guardamos con extensin .m.
3. Ejecutarlo escribiendo en la lnea de rdenes el nombre del
fichero