Vous êtes sur la page 1sur 23

1

TEMA 3: VECTORES Y MATRICES EN


MATLAB
Autor: Luis Javier Herrera Maldonado

Contenido:
1. Vectores y matrices.
2. Sistemas de ecuaciones lineales.
1. Vectores y Matrices 2

Vectores y Matrices
- Un vector es una colección unidimensional de elementos del
mismo tipo (puede ser vector fila o vector columna ojo!)
- Una matriz es una colección bidimensional ó multidimensional de
elementos del mismo tipo.

* NO nos interesan estudiar ahora CÓMO se opera con vectores y


matrices (ya lo hace por nosotros MATLAB)
* Lo que SÍ nos interesa es UTILIZAR:
- colecciones de datos, en vez de utilizar datos individuales,
para agilizar las operaciones y obtener resultados completos
(colecciones de resultados)
- las operaciones con vectores y matrices en general para
realizar cálculos complejos con los datos y obtener los
resultados que deseamos
1. Vectores y Matrices 3

¿Cómo se crean vectores y matrices? → usando los [ ]


• Un vector fila, se declara de la siguiente manera ([,,,])
>> C = [1, 2, 3]
y un vector columna ([;;;])
>> D = [10; 20; 30]
• Para crear matrices, se combinan ambas cosas([,,,;,,,;,,,])
-obviamente cada fila tiene que tener el mismo número de
elementos-:
>> B = [12, 62, 93, -8; 16, 2, 87, 43; -4, 17,
-72, 95]
B =
12 62 93 -8
16 2 87 43
-4 17 -72 95
• No olvidemos que un vector es lo mismo que una matriz
donde todas las dimensiones menos una es distinta de 1
1. Vectores y Matrices 4

Algunos comandos de MATLAB para creación de matrices


• eye(): crea una matriz (cuadrada) diagonal de todo unos
>> A = eye(2)
A =
1 0
0 1
• Ones(,), zeros(,): crea matrices de todo unos o todo ceros
>> B = zeros(1,2)
B =
0 0
>> C = ones(2,3)
C =
1 1 1
1 1 1
1. Vectores y Matrices 5

Algunos comandos de MATLAB para creación de matrices (II)


• rand(,): crea una matriz con valores aleatorios
uniformemente distribuidos entre 0 y 1
>> D = rand(2,2)
D =
0.4854 0.1419
0.8003 0.4218
• randn(,): matriz con valores aleatorios media 0 y varianza 1
>> E = randn(1,2)
E =
-1.2075 0.7172
• Estos comandos, rand() y randn(), son también válidos
para valores individuales!
>> F = rand ó >> F = rand() ó >> F = rand(1,1)
F = 0.9340
1. Vectores y Matrices 6

Secuencias numéricas, operador ':'


• Se pueden crear vectores que contengan secuencias
numéricas mediante el operador :
>> G = [1:10]
G =
1 2 3 4 5 6 7 8
9 10
• El intervalo también se puede indicar
H = [1:3:10]
H =
1 4 7 10
I = [1:0.3:2]
I =
1.0000 1.3000 1.6000 1.9000
K = [1:-0.3:0]
K =
1.0000 0.7000 0.4000 0.1000
1. Vectores y Matrices 7

• linspace(X, Y, Z): crea una secuencia entre X e Y con Z


intervalos
>> linspace(3,5,4)
ans =
3.0000 3.6667 4.3333 5.0000
• Concatenación de matrices: siempre que se respeten la
dimensionalidad de las matrices, se pueden usar unas
matrices en la creación de otras:
>> A = [3,4,5]; B = [A; A; A]; C = [A', A', A'];
B = C =
3 4 5 3 3 3
3 4 5 4 4 4
3 4 5 5 5 5
• Funciones de Matlab interesantes: repmat(,,): crea una
matriz por repetición de otra en ambas dimensiones
1. Vectores y Matrices 8

Acceso a vectores y matrices


• El índice en el acceso a los vectores y matrices puede
tomar valores desde 1 hasta dim

v(1) v(2) v(3) v(4) v(5) v(6) v(7) v(8) v(9) v(10)

3 4 5 6 7 8 9 1 2 3

Así:
V(1) == 3
V(5) == 7
V(9) == 2
1. Vectores y Matrices 9

Acceso a vectores y matrices


• El acceso a vectores y matrices se realiza utilizando los ()
>> A = [2,3,4]
A =
2 3 4
>> b = A(1) + A(2) + A(3)
b =
9
En Matrices
>> C =
0.6787 0.3922 0.7060
0.7577 0.6555 0.0318
0.7431 0.1712 0.2769
>> C(3,2)
ans =
0.1712
1. Vectores y Matrices 10

Acceso a vectores y matrices


• La modificación de valores de vectores y matrices se
realiza utilizando el ()
>> A = [2,3,4]
A =
2 3 4
>> >> A(1) = 5
A =
5 3 4

En Matrices
>> C = [
0.6787 0.3922 0.7060
0.7577 0.6555 0.0318
0.7431 0.1712 0.2769]
>> C(2,2) = 1
C =
0.6787 0.3922 0.7060
0.7577 1.0000 0.0318
0.7431 0.1712 0.2769
1. Vectores y Matrices 11

Acceso a matrices (II): Acceso de submatrices


• Se pueden obtener submatrices mediante la utilización de
secuencias (de valores enteros)
>> C = 0.6787 0.3922 0.7060
0.7577 0.6555 0.0318
0.7431 0.1712 0.2769
>> D = C(2,1:3)
D = 0.7577 0.6555 0.0318
>> E = C(2:3,2:3)
E = 0.6555 0.0318
0.1712 0.2769
>> F = C(1,1:2:3)
F = 0.6787 0.7060
• El operador : en solitario, sirve además para indicar una
fila o columna completas (o una matriz completa (:,:))
D = C(2,1:3) es lo mismo que D = C(2,:)
1. Vectores y Matrices 12

Acceso a matrices (III): Resumen acceso a matrices


• Al acceder a filas y columnas en una matriz (o elementos
de un vector), tenemos las siguientes posibilidades:
>> C = [ 0.6787 0.3922 0.7060
0.7577 0.6555 0.0318
0.7431 0.1712 0.2769]
>> V = [1, 2, 3, 4, 5, 6, 7, 8]
>> W = V( )
>> D = C( , )
¿cuáles? filas columnas
Una sola → 3 7
Un rango → 1:4 5:end
Varias → [1,3,4] [4,6,end]
Todas → : :
• El operador “end” indica la última fila o columna
1. Vectores y Matrices 13

Acceso a matrices (IV): Modificación de submatrices


• Se pueden modificar submatrices mediante la utilización
de secuencias (de valores enteros)
>> C = [0.6787 0.3922 0.7060
0.7577 0.6555 0.0318
0.7431 0.1712 0.2769]
>> D = ones(1,3)
D =
1 1 1
>> C(2,1:3) = D
C =
0.6787 0.3922 0.7060
1.0000 1.0000 1.0000
0.7431 0.1712 0.2769
>> C(2:3,2:3) = zeros(2,2)
C =
0.6787 0.3922 0.7060
1.0000 0 0
0.7431 0 0
1. Vectores y Matrices 14

• Operaciones básicas con matrices en Matlab


– A = rand(3,3); B = rand(3,3);
– Suma y resta de matrices (mismo tamaño):
C = A+B; D = A-B;
– Multiplicación de matrices (igual número de columnas a y filas b)
E = A*B;
– Matriz transpuesta (bien mediante el operador ', bien transpose)
F = A'; F = transpose(A);
– Inversa de una matriz (función inv)
G = inv(A)
– Determinante de una matrix (matrices cuadradas)
H = det(A)
– Suma, resta, multiplicación y división por escalares:
I = A*3;
J = B + 3;
1. Vectores y Matrices 15

• Operaciones básicas con matrices en Matlab (II)


– Operaciones elemento a elemento, ateponiendo el operador '.' al
operador que se quiere aplicar:
• Multiplicación elemento a elemento (.*):
– K = A .* B
• Exponenciación elemento a elemento (.^):
– M = A .^B
• Exponenciación por un escalar!!!
– N = A.^2
• QUE NO ES LO MISMO QUE
– O = A^2 → O = A*A (multiplicación de matrices)
>> P = [2 2; 3 3]
>> O = P^2 >> N = P.^2
O= N=
10 10 4 4
15 15 9 9
1. Vectores y Matrices 16

• Operaciones básicas con matrices en Matlab (III)


Pero es que resulta, que todas las operaciones que hemos
visto para valores escalares en el tema anterior son
aplicables a matrices y vectores (elemento a elemento)
– sin, cos, tan, etc.
>> P = sin(A)
P = 0.0462 0.6403 0.0344
0.0970 0.3118 0.4248
0.7335 0.8135 0.3724
– log, exp, sqrt, etc.
– abs,round, ceil, etc.
>> Q = round(A)
Q= 0 1 0
0 0 0
1 1 0
1. Vectores y Matrices 17

• Algunas funciones de Matlab para determinar las


dimensiones de matrices y vectores
– length() Length of vector or largest array dimension
– ndims() Number of array dimensions
– numel() Number of array elements
– size() Array dimensions

– iscolumn() Determine whether input is column vector


– isempty() Determine whether array is empty
– ismatrix() Determine whether input is matrix
– isrow() Determine whether input is row vector
– isscalar() Determine whether input is scalar
– isvector() Determine whether input is vector
1. Vectores y Matrices 18

• Algunas operaciones básicas (aritméticas y estadísticas)


de MATLAB mediante funciones específicas:
– sum() Sum of array elements
– prod() Product of array elements
– diff() Differences and approximate derivatives
– max() Largest elements in array
– mean() Average or mean value of array
– median() Median value of array
– min() Smallest elements in array
– mode() Most frequent values in array
– std() Standard deviation
– var() Variance
– cov() Covariance matrix
2. Sistema de ecuaciones lineales 19

Resolver el siguiente sistema de ecuaciones lineales


4X -2Y +6Z = 8
2X + 8Y + 2Z = 4
6X + 10Y + 3Z = 0
Este problema se puede resolver mediante las dos
siguientes ecuaciones

[ ][ ] [ ] [ ]
4 −2 6 X 8 4 2 6
2 8 2 Y =4 [X Y Z ] −2 8 10 =[ 8 4 0 ]
6 10 3 Z 0 6 2 3
2. Sistema de ecuaciones lineales 20

• División de matrices: MATLAB presenta dos tipos de


divisiones de matrices, división por la derecha y división
por la izquierda
– La división por la izquierda se usa para resolver la ecuación
matricial (sistema de ecuaciones)
AX = B
donde X y B son vectores columna.
Para resolverlo en MATLAB se escribe
X = A\B
– La división por la derecha se usa para resolver la ecuación
matricial (sistema de ecuaciones)
XC = D
donde X y D son vectores fila.
Para resolverlo en MATLAB se escribe
X = D/C
2. Sistema de ecuaciones lineales 21

>> A = [4 -2 6; 2 8 2; 6 10 3];
>> B = [8; 4; 0];
>> X = A\B
X =
-1.8049

[ ][ ] [ ]
0.2927 4 −2 6 X 8
2 8 2 Y =4
2.6341 6 10 3 Z 0
>> Xb = inv(A)*B
Xb =
-1.8049
0.2927
2.6341
2. Sistema de ecuaciones lineales 22

>> C = [4 2 6; -2 8 10; 6 2 3];


>> D = [8 4 0];

[ ]
>> Xc = D/C 4 2 6
[X Y Z ] −2 8 10 =[ 8 4 0 ]
6 2 3
Xc =

-1.8049 0.2927 2.6341

>> Xd = D * inv(C)

Xd =

-1.8049 0.2927 2.6341


2. Funciones avanzadas. Derivación e integración 23

• Algebra lineal:
http://www.mathworks.es/es/help/matlab/linear-algebra.html
– Ecuaciones lineales
– Descomposición de matrices
– Eigenvalores
– Análisis de matrices?
• Interpolación
http://www.mathworks.es/es/help/matlab/interpolation-1.html
• Optimización
http://www.mathworks.es/es/help/matlab/optimization.html
• Diferenciación e Integración
http://www.mathworks.es/es/help/matlab/numerical-integration

Vous aimerez peut-être aussi