Está en la página 1de 25

Herramientas computacionales para la

matemtica
MATLAB: Arreglos

Vernica Borja Macas


Marzo 2013

Matlab
Arreglos: Matrices

Una matriz es un arreglo bidimensional, es una


sucesin de nmeros distribuidos en filas y columnas.
En MATLAB, una matriz se puede definir al escribir una
lista de nmeros encerrada entre corchetes. Los
nmeros se pueden separar mediante espacios o
comas. Las nuevas filas se indican con punto y coma.
Tambin se puede definir una matriz al hacer una lista
de cada fila en una lnea separada, incluso no necesita
el punto y coma para la nueva lnea basta con un enter.

Matlab
Arreglos: Matrices
Ejemplos
>> A = [1 2 3; 4 5 6] % es una matriz con 2 filas y 3 columnas
A=
1 2 3
4 5 6
>> A = [1 2 3;
4 5 6]
A=
1 2 3
4 5 6
>> A = [1 2 3
4 5 6]
A=
1 2 3
4 5 6
3

Matlab
Arreglos: Matrices

Para acceder a los elementos individuales de una


matriz lo haremos utilizando subndices, A(n,m) donde
n es el nmero de fila y m el nmero de columna.
Podemos indicar el ltimo subndice como end.
Ejemplos
>> A = [1 2 3; 4 5 6]
>>A(1,1)
ans=
1
>>A(1,end)
ans=
3
>>A(2,2)
ans=
5
4

Matlab
Arreglos: Matrices

Si queremos que escriba toda una fila o columna


usaremos los dos puntos.
Al igual que con los vectores podemos indicar que
escriba una serie de filas o columnas.
Ejemplos
>> A = [1 2 3; 4 5 6] ;
>> A (2,:) % escribe la segunda fila de la matriz
ans =
4 5 6
>> A (:,2) % escribe la segunda columna de la matriz
ans =
2
5
5

Matlab
Arreglos: Matrices
Ejemplos
>> A = [1 2 3; 4 5 6]
>> A (2,2:3) % escribe de la segunda fila, columnas de la 2 a la 3
ans =
5 6
>> A (2, [3 1] ) % escribe de la segunda fila de la matriz, las columnas 3 y 1
ans =
6 4
>> A ( [2 1] , 2:3) % escribe de las filas 2 y 1 , las columnas de la 2 a la 3
ans =
5 6
2 3
>> A (end, [1 3] ) % escribe de la ltima fila, las columnas 1 y 3
ans =
4 6
6

Matlab
Arreglos: Matrices

Matlab tiene adems otra forma de identificar cada


elemento de una matriz, de modo que podemos
acceder a un elemento de una matriz indicando slo un
valor y no dos, pero debemos saber que el orden
elegido por MATLAB es por columnas as los elementos
de la matriz A del ejemplo anterior seran
denominados:
Ejemplos
A(1)
A(2)

A(3)
A(4)

A(5)
A(6)

>> A = [1 2 3; 4 5 6] ;
>>A(5)%accede al elemento A(1,3)
ans=
3

Matlab
Arreglos: Matrices

Tambin es posible crear nuevas matrices a partir de


vectores o matrices ya existentes.
Ejemplos
>>A=[1 2 3 4 5]
A=
1 2 3 4
>>B=1:2:9
B=
1 3 5 7
>>T = [ A; B]
T=
1 2 3 4
1 3 5 7

5
9
5
9
8

Matlab
Arreglos: Matrices

En MATLAB, es vlido tener una matriz que est vaca.


Por ejemplo, los siguientes enunciados generarn cada
uno una matriz vaca:
Ejemplos
>>A = [ ]
>>B = 4:-1:5;

Tambin es posible eliminar filas o columnas mediante


la asignacin del vacio [].

Matlab
Arreglos: Matrices

Finalmente, usar el nombre de matriz con un solo dos


puntos, (:) transforma la matriz en una sola columna.
Ejemplos
>> M = [1 2 3 ;4 5 6 ];
>> A=M(:)
A=
1
4
2
5
3
6

10

Matlab
Arreglos: Matrices

Podemos ampliar una matriz asignando valores a


nuevas posiciones y MATLAB llenara los espacios
restantes con ceros.
Ejemplos
>> M = [1 2 3; 4 5 6; 7 8 9];
>> M(1,5)=3
M=
1 2 3 0 3
4 5 6 0 0
7 8 9 0 0

11

Matlab
Arreglos: Matrices
Construccin abreviada de algunas matrices

zeros(n) crea una matriz cuadrada n x n de ceros.


zeros(m,n) crea una matriz m x n de ceros.
ones(n) crea una matriz cuadrada n x n de unos.
ones(m,n) crea una matriz m x n de unos.
rand(n) crea una matriz cuadrada n x n de nmeros aleatorios
con distribucin uniforme (0,1).
rand(m,n) crea una matriz m x n de nmeros aleatorios con
distribucin uniforme (0,1).
randn(n) crea una matriz cuadrada n x n de nmeros aleatorios
con distribucin normal (0,1).
randn(m,n) crea una matriz m x n de nmeros aleatorios con
distribucin normal (0,1).
12

Matlab
Arreglos: Matrices
Construccin abreviada de algunas matrices

eye(n) crea una matriz cuadrada n x n de unos en la diagonal y


ceros el resto.
eye(m,n) crea una matriz m x n de unos en la diagonal y ceros el
resto.
magic(n) crea una matriz cuadrada n x n de enteros de modo que
sumen lo mismo las filas y las columnas.
hilb (n) crea una matriz cuadrada n x n de Hilbert, es decir, los
elementos (i,j) responden a la expresin (1/(i+j-1)).
invhilb(n) crea una matriz cuadrada n x n que es la inversa de la
matriz de Hilbert.

13

Matlab
Arreglos: Matrices
Ejemplos
>> zeros (3) % matriz cuadrada 3 x 3 de ceros
ans =
0 0 0
0 0 0
0 0 0
>> zeros (2,5) % matriz 2 x 5 de ceros
ans =
0 0 0 0 0
0 0 0 0 0
>> ones (2,3) % matriz de unos
ans =
1 1 1
1 1 1

14

Matlab
Arreglos: Matrices
Ejemplos
>> eye(3) % matriz identidad de 3 x 3
ans =
1 0 0
0 1 0
0 0 1
>> rand(2,4) % matriz de 2 x 4 con entradas aleatorias
ans =
0.8147 0.1270 0.6324 0.2785
0.9058 0.9134 0.0975 0.5469
>> magic(3) % matriz de 3x3 cuyos renglones y columnas suman lo mismo
ans =
8 1 6
3 5 7
4 9 2
15

Matlab
Arreglos: Operaciones con matrices

Podemos realizar operaciones entre matrices y


escalares, entre matrices y vectores, entre matrices y
matrices y dependiendo de la operacin tambin es
posible operar elemento a elemento.
Expresin Operacin
M+k
Mk
M*k
M/k o M./k
k .^ M
M .^ k

Suma a los elementos de la matriz M el escalar k


Resta a los elementos de la matriz M el escalar k
Multiplicacin los elementos de la matriz M por el escalar k
Divisin los elementos de la matriz M por el escalar k
Potenciacin del escalar k a cada uno de los elementos de M
Potenciacin los elementos M a la potencia escalar k

16

Matlab
Arreglos: Operaciones con matrices
Expresin

Operacin

M+N
MN
M*N
M .* N
M\N
M/N

Suma de matrices
(=)
Resta de matrices
(=)
Multiplicacin de matrices
(c=r)
Multiplicacin elemento a elemento
(=)
Divisin de matrices por la izquierda (sol. MX = N)
(=r)
Divisin de matrices por la derecha (sol. XM = N)
(=c)
M/N = (M'\N')'
Divisin elemento a elemento por la derecha
Divisin elemento a elemento por la izquierda
Potenciacin de la matriz cuadrada M a la potencia k
Potenciacin elemento a elemento
Transposicin compleja conjugada
Transposicin

M ./ N
M .\ N
M^k
M .^ N
M'
M .'

17

Matlab
Arreglos: Funciones para el anlisis de matrices
Funciones (Con A matriz, v vector y n nmero natural)
det (A)
determinante
diag (v)
crea una matriz diagonal con v sobre la diagonal
diag (A)
extrae la diagonal de A como un vector columna
inv (A)
matriz inversa
length (A) mxima dimensin
size (A)
dimensiones
size (A, 1) nmero de renglones
size (A, 2) nmero de columnas
find (A)
ndices de las entradas de A distintas de 0
fliplr (A)
voltea la matriz de izquierda a derecha
flipud (A) voltea la matriz de arriba a abajo
reshape (A,m,n) devuelve una matriz m x n cuyos elementos se toman
por columnas de A
18

Matlab
Arreglos: Funciones para el anlisis de matrices
Funciones
rot90 (A)
gira la matriz 90 en sentido contrario al reloj
rot90 (A,n) gira la matriz n x 90
expm (A)
exponencial matricial
logm (A)
logaritmo matricial
sqrtm (A)
raz cuadrada matricial
funm (A,@funcin) evala la funcin en la matriz A
exp, log, sqrt operan elemento a elemento
eig (A)
valores propios
cond (A)
nmero de condicin (sensibilidad a errores en datos)
norm (A)
norma
norm (A,n) norma-n
normest (A) estimacin de la norma-2

19

Matlab
Arreglos: Funciones para el anlisis de matrices
Funciones
null (A) espacio nulo
orth (A) ortogonalizacin
pinv (A) pseudoinversa
poly (A) polinomio caracterstico
rank (A) rango
rref (A) reduccin mediante la eliminacin de Gauss
trace (A) traza
tril (A) matriz triangular inferior a partir de la matriz A
triu (A) matriz triangular superior a partir de la matriz A
[VE,VA] = eig (A) VE son los vectores y VA son los valores propios
[L,U] = lu (A) factorizacin LU
[Q,R] = qr (A) factorizacin QR
20

Matlab
Arreglos: Operadores relacionales con vectores y matrices
Cuando alguno de los operadores relacionales (<, >, <=, >=, ==
y =) acta entre dos matrices del mismo tamao, el
resultado es otra matriz de ese mismo tamao conteniendo
unos y ceros, segn los resultados de cada comparacin true
o false, respectivamente.
Ejemplos
>> A=magic(3)
A=
8 1 6
3 5 7
4 9 2
>> M=A>4
M=
1 0 1
0 1 1
0 1 0
21

Matlab
Arreglos: Operadores relacionales con vectores y matrices
Funciones
any(x) funcin vectorial; verifica si alguno de los elementos del vector x
cumple una determinada condicin.
any(A) se aplica por separado a cada columna de la matriz A. El
resultado es un vector de unos y ceros
all(x) funcin vectorial; verifica si todos los elementos del vector x
cumplen una condicin.
all(A) se aplica por separado a cada columna de la matriz A. El resultado
es un vector de unos y ceros
find(x) busca ndices correspondientes a elementos de vectores que
cumplen una determinada condicin. El resultado es un vector con los
ndices de los elementos que cumplen la condicin
find(A) cuando esta funcin se aplica a una matriz la considera como un
vector con una columna detrs de otra.
22

Matlab
Arreglos: Matrices
Ejemplos

>> A=magic(3)
A=
8 1 6
3 5 7
4 9 2
>> m=find(A>4)
m=
1
5
6
7
8

23

Matlab
Arreglos: Operadores relacionales con vectores y matrices
Ejemplos
>> A(m)=10*ones(size(m)) % sustituye los elementos que cumplen la condicin
A=
anterior por valores de 10.
10 1 10
3 10 10
4 10 2

Funciones
isnan(A) verifica si hay valores NaN en A, devolviendo una matriz de
unos y ceros del mismo tamao que A.
isinf(A) verifica si hay valores Inf en A, devolviendo una matriz de unos
y ceros del mismo tamao que A.
isfinite(A) verifica si los valores de A son finitos.
isempty(A) verifica si un vector o matriz est vaco o tiene tamao nulo.
issparse() verifica si una matriz es dispersa (sparse, es decir, con un
gran nmero de elementos cero).
24

Matlab
Arreglos: Matrices
Ejemplos
>> x=[1 2 3 4 0/0 6]
Warning: Divide by zero
x=
1 2 3 4 NaN 6
>> i=find(isnan(x))
i=
5
>> x(isnan(x))=[] % posibles formas de eliminarlo
x=
1 2 3 4 6
>> x=x(~isnan(x));
>> x=x(find(~isnan(x)));
>> A(any(isnan(A)'), :)=[] % elimina las filas de A que contienen algn NaN

25

También podría gustarte