Sunteți pe pagina 1din 45

UNIVERSIDAD PERUANA DEL CENTRO

E.A.P. INGENIERIA CIVIL

ARREGLOS Y MATRICES EN MATLAB

• Raymundo Oré, Meliza Maurita


• Ramos Paredes, Luisa Marlene
• Nuñez Rojas, Wilfredo Edison

2018
1
Arreglos

 Un arreglo es una estructura que MATLAB utiliza para


almacenar y manipular datos.
 Esuna lista de números dispuestos en filas y/o
columnas.
 Los arreglos pueden ser:
 Unidimensionales (vectores)
 Bidimensionales (matrices)
 Mas de dos dimensiones (hipermatrices).

2
Arreglos: Vectores

 Un arreglo unidimensional es una sucesión de números


distribuidos en una fila o en unacolumna.
 En MATLAB un vector renglón se crea asignando sus
elementos a una variable, para ello introducimos los
valores deseados separados por espacios (o comas)
todo ello entre corchetes[].
 Si deseamos un vector columna entonces introducimos
los valores separados por punto y coma, todo ello
entre corchetes [].
 Generalmente usaremos letras mayúsculas cuando
nombremos a las matrices y minúsculas para vectores y
escalares. Esto no es imprescindible y Matlab no lo
exige, pero resulta útil.
3
Arreglos: Vectores

Ejemplos
Matlab
>> x = [5 7 -2 4 -6] %es un vector, los elementos los separamos con espacios
x=
5 7 -2 4 -6
>> y = [2,1,3,7] %es otro vector, los elementos los separamos con comas
y=
2 1 3 7
>> z = [0 1 2,3 4,5] %da igual separar los elementos por comas o espacios
z=
0 1 2 3 4 5
>> w = [1 ;2; 3] %es un vectorcolumna
w=
1
2
3

4
Arreglos: Vectores

 Para acceder a los elementos individuales de un vector


lo haremos utilizando subíndices, x(n) es el n-ésimo
elemento del vector x.
 Si queremos acceder al último podemos indicarlo
usando end como subíndice.
Ejemplos
>> x = [5 7 -2 4 -6];
>> x (2) %segundo elemento del vector x
ans =
7
>> x (end) %último elemento del vector x
ans =
-6

5
Arreglos: Vectores

 Un vector puede cambiar su tamaño, si tiene n


elementos, basta añadir nuevos valores paralas
posiciones n+1, n+2 y así sucesivamente.
 Si es necesario MATLAB asigna ceros a los elementos
entre el último del vector original y el añadido.
Ejemplos
>> x = [5 7 -2 4 -6];
>> x (6)=8 %agrega un sexto elemento al vector x con un valor de 6
ans =
5 7 -2 4 -6 8
>> x(10)=7 %llena con ceros las posiciones 7, 8 y 9
ans =
5 7 -2 4 -6 8 0 0 0 7

6
Arreglos: Vectores

 También es posible añadir nuevos elementos a un


vector ya existente a partir de otros vectores.

Ejemplos
>> x = [5 7 -2 4 -6];
>> w = [1 2 3 4];
>> z1=[x w] %une los vectores x y w para formarz1
z1=
5 7 -2 4 -6 1 2 3 4
>> z2=[x(1) w x(3)] %une el primer elemento de x con el vector w y con el
tercer elemento de x para formar z2
z2=
5 1 2 3 4 -2

7
Arreglos: Vectores

 Para acceder a un bloque de elementos a la vez, se usa


la notación de dos puntos (:), así x(m:n) nos da todos
los elementos desde el m-ésimo hasta el n-ésimo del
vector x.
Ejemplos
>> x = [5 7 -2 4 -6];

>> x (2:4) %devuelve desde el segundo hasta al cuarto elemento del vector x
ans =
7 -2 4

8
Arreglos: Vectores

 También es posible eliminar elementos de un vector


existente mediante la asignación del vacio [] al
elemento o rango de elementos que se deseen
eliminar.
Ejemplos
>> x = [1 2 3 4 5 6 7]; %eliminamos el cuarto elemento del vectorx
>> x(4) = []
x=
1 2 3 5 6 7
>> x(2:5) = [] %eliminamos los elementos desde la posición 2 hasta la 5
x=
1 7

9
Arreglos: Vectores

 Si introducimos un número entre el primero y el


segundo también separado por dos puntos (:) se
mostrarán los elementos del primero al último
indicado, incrementados según el número queaparece
en el centro (o decrementados si el número es
negativo).
Ejemplos
>> x = [5 7 -2 4 -6];

>> x (1:2:5) %devuelve el primero, tercero y quinto elemento del vectorx


ans =
5 -2 -6

10
Arreglos: Vectores
 Otra forma de obtener un conjunto concreto de
elementos del vector es indicando entre corchetes []
las posiciones de los elementos que queremosobtener
poniendo paréntesis fuera de loscorchetes.

Ejemplos
>> x = [5 7 -2 4 -6];

>> x ( [3 5 1] ) %devuelve el tercer, quinto y primer elemento del vector x


ans =
-2 -6 5

11
Arreglos: Vectores

Construcción abreviada de algunos vectores


(a:b) crea un vector que comienza en el valor a y acaba enel
valor b aumentando de 1 en1.
(a:c:b) crea un vector que comienza en el valor a y acaba enel
valor b aumentando de c en c.
linspace (a,b,c) genera un vector linealmente espaciado entrelos
valores a y b con c elementos.
linspace (a,b) genera un vector linealmente espaciado entrelos
valores a y b con 100 elementos.
logspace (a,b,c) genera un vector logarítmicamente espaciado
entre los valores 10^a y 10^b con celementos.
logspace (a,b) genera un vector logarítmicamente espaciado
entre los valores 10^a y 10^b con 50elementos.

12
Arreglos: Vectores

Ejercicios
1. (1:7)
2. 1:7
3. 1:3:10
4. 1:4:10
5. 1:0.1:1
6. 50:-7:1
7.linspace (2,6,3)
8.linspace (2,6,4)
9.linspace (2,10)
10.logspace (0,2,4)
11.logspace (0,25)

13
Arreglos: Operaciones con vectores

 Podemos conocer el tamaño de un vector v conalguna


de las funciones length(v) o size(v).
 Esposible realizar operaciones entre vectores y
escalares
Expresión Operación
x +k Suma a los elementos del vector x el escalar k
x–k Resta a los elementos del vector x el escalar k
k*x Multiplicación los elementos del vector x por el escalar k
x/ k División los elementos del vector x por el escalar k
k .^ x Potenciación del escalar k a cada uno de los elementos de x
x .^ k Potenciación los elementos del vector x a la potencia escalar k

14
Arreglos: Operaciones con vectores

Expresión Operación
x+y Suma de los vectores x e y con el mismo tamaño
x–y Resta de los vectores x e y con el mismo tamaño
x .* y Multiplicación elemento aelemento
x ./ y División elemento a elemento por la derecha
x .\ y División elemento a elemento por la izquierda
x .^ y Potenciación elemento a elemento
x' Transposición compleja conjugada
x .’ Transposición
cross (x,y) producto cruz de los vectores x e y de dimensión 3
dot (x,y) producto punto de los vectores x ey

15
Arreglos: Vectores

 Si una función matemática predefinida tiene como


argumento un vector, obtendremos como resultadoun
vector del mismo tamaño con entradas obtenidas
realizando la operación especificada.
Ejemplos
>>v=[1 2 3]
>> sin(v)
ans =
0.8415 0.9093 0.1411
>> log(v)
ans =
0 0.6931 1.0986

16
Arreglos: Vectores

 Con un poco de práctica se aprenderá como evaluar


expresiones más complejas, por ejemplo, evaluar la
expresión x2 − 2x − 3 para valores de x entre 1 y 10, con
incremento de 1, la solución es muy simple:

Ejemplos
>> x=1:10
>> y=x.^2-2*x-3

17
Arreglos: Operaciones con vectores

Expresión Operación
prod(x) calcula el producto de los valores dex.
sum(x) calcula la suma de los valores de x.
cumprod(x calcula un producto acumulado de los valores dex.
) calcula la suma acumulada de los valores de x.
cumsum(x) ordena los elementos del vector x.
sort(x)

18
Arreglos: Vectores

Ejercicios
Sean a=(1 2 3), b=(-2 3 5).
1. Sume 3 a cada elemento de a y divida cada elemento de b
entre 2.
2. Realiza las operaciones que se indican: a+b, a-b, ab y ab.
3. Divide los elementos de a entre los elementos deb
4. Un vector columna que contenga los números impares entre 1
y 1000.
5. Un vector fila que contenga los números pares entre 2 y1000.
6. Si x=0:2:20, escribe el comando de MATLAB que eleva al
cuadrado cada componente de x.
7. Verifique si x=(1,3,2) e y=(-2 2 -2) son ortogonales.

19
Arreglos: Vectores

Ejercicios
8. Obtenga un vector ortogonal x=(1,3,2) e y=(2 2-2).
9. Si x=[0,1,4,9,16,25], calcula la raíz cuadrada de cada
componente de x.
10.Si x=0:.1:1, eleva cada componente de x a 2/3.
11.Si x=0:pi/2:2*pi, calcula el coseno de cada componente de x.
12.Si x=-1:.1:1, calcula el seno inverso de cada componente de x.
13.Si x=linspace(0,2*pi,1000), ¿cuál es la entrada 50 de x?¿Cuál
es la longitud de x?
14.Si k=0:100, ¿cuál es la entrada número 12 de y=0.5.^k?
15.Evaluar la expresión sen(x)/x para valores de x entre −1 y 1
con incrementos de 0.1 unidades.

20
MATRICES
ARREGLOS: MATRICES
 Una matriz es un arreglo bidimensional, es una
sucesión de números distribuidos en filas ycolumnas.
 En MATLAB, una matriz se puede definir al escribir una
lista de números encerrada entre corchetes. Los
números se pueden separar mediante espacios o
comas. Las nuevas filas se indican con punto y coma.
 También se puede definir una matriz al hacer una lista
de cada fila en una línea separada, incluso no necesita
el punto y coma para la nueva línea basta con unenter.

22
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
23
Arreglos: Matrices

 Para acceder a los elementos individuales de una


matriz lo haremos utilizando subíndices, A(n,m)donde
n es el número de fila y m el número de columna.
Podemos indicar el último subíndice comoend.
Ejemplos
>> A = [1 2 3; 4 5 6]
>>A(1,1)
ans=
1
>>A(1,end)
ans=
3
>>A(2,2)
ans=
24
5
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 25
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 y1
ans =
6 4
>> A ( [2 1] , 2:3) %escribe de las filas 2 y 1 , las columnas de la 2 a la3
ans =
5 6
2 3
>> A (end, [1 3] ) %escribe de la última fila, las columnas 1 y3
ans =
4 6
26
Arreglos: Matrices

 Matlab tiene además otra forma de identificar cada


elemento de una matriz, de modo que podemos
acceder a un elemento de una matriz indicando sóloun
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 serían
denominados:
Ejemplos
A(1) A(3) A(5) >> A = [1 2 3; 4 5 6] ;
>>A(5)%accede al elemento A(1,3)
A(2) A(4) A(6) ans=
3

27
Arreglos: Matrices

 También es posible crear nuevas matrices a partir de


vectores o matrices yaexistentes.

Ejemplos
>>A=[1 2 3 4 5]
A=
1 2 3 4 5
>>B=1:2:9
B=
1 3 5 7 9
>>T = [ A; B]
T=
1 2 3 4 5
1 3 5 7 9
28
 En MATLAB, es válido tener una matriz que esté vacía.
Por ejemplo, los siguientes enunciados generarán cada
uno una matriz vacía:
Ejemplos
>>A = [ ]
>>B = 4:-1:5;

 También es posible eliminar filas o columnasmediante


la asignación del vacio [].
29
Arreglos: Matrices

 Finalmente, usar el nombre de matrizcon un solo dos


puntos, (:) transforma la matriz en una solacolumna.

Ejemplos
>> M = [1 2 3 ;4 5 6];
>> A=M(:)
A=
1
4
2
5
3
6
30
 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 89];
>> M(1,5)=3
M=
1 2 3 0 3
4 5 6 0 0
7 8 9 0 0

31
Construcción abreviada de algunas matrices
zeros(n) crea una matriz cuadrada n x n deceros.
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 deunos.
rand(n) crea una matriz cuadrada n x n de númerosaleatorios
con distribución uniforme (0,1).
rand(m,n) crea una matriz m x n de números aleatorioscon
distribución uniforme (0,1).
randn(n) crea una matriz cuadrada n x n de númerosaleatorios
con distribución normal (0,1).
randn(m,n) crea una matriz m x n de números aleatorioscon
distribución normal (0,1). 32
Construcción abreviada de algunas matrices
eye(n) crea una matriz cuadrada n x n de unos en ladiagonal y
ceros el resto.
eye(m,n) crea una matrizm x n de unos en la diagonal y ceros el
resto.
magic(n) crea una matriz cuadrada n x n de enteros de modoque
sumen lo mismo las filas y lascolumnas.
hilb (n) crea una matriz cuadrada n x n de Hilbert,es decir, los
elementos (i,j) responden a la expresión (1/(i+j-1)).
invhilb(n) crea una matriz cuadrada n x n que es la inversa dela
matriz de Hilbert.

33
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
34
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 35
Arreglos: Operaciones con matrices

 Podemos realizar operaciones entre matrices y


escalares, entre matrices y vectores, entre matricesy
matrices y dependiendo de la operación también es
posible operar elemento aelemento.
Expresión Operación
M +k Suma a los elementos de la matriz M el escalar k
M –k Resta a los elementos de la matriz M el escalar k
M*k Multiplicación los elementos de la matriz M por el escalar k
M/k oM./k División los elementos de la matriz M por el escalar k
k .^ M Potenciación del escalar k a cada uno de los elementos de M
M .^k Potenciación los elementos M a la potencia escalark
36
Arreglos: Operaciones con matrices

Expresión Operación
M +N Suma de matrices (=)
M –N Resta de matrices (=)
M *N Multiplicación de matrices (c=r)
M .* N Multiplicación elemento a elemento (=)
M \N División de matrices por la izquierda (sol. MX= N) (=r)
M /N División de matrices por la derecha (sol. XM = N)
(=c) M/N =(M'\N')'
M ./ N División elemento a elemento por la derecha
M .\ N División elemento a elemento por la izquierda
M^k Potenciación de la matriz cuadrada M a la potenciak
M .^ N Potenciación elemento a elemento
M' Transposición compleja conjugada
M .' Transposición 37
Arreglos: Funciones para el análisis dematrices

Funciones (Con A matriz, v vector y n número 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) máxima dimensión
size (A) dimensiones
size (A, 1) número de renglones
size (A, 2) número 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 aabajo
reshape (A,m,n) devuelve una matriz m x n cuyos elementos se toman
por columnas deA 38
Arreglos: Funciones para el análisis dematrices
Funciones
rot90 (A) gira la matriz 90º en sentido contrario alreloj
rot90 (A,n) gira la matriz n x90º
expm (A) exponencial matricial
logm (A) logaritmo matricial
sqrtm (A) raíz cuadrada matricial
funm (A,@función) evalúa la función en la matrizA
exp, log, sqrt… operan elemento a elemento
eig (A) valores propios
cond (A) número de condición (sensibilidad a errores en datos)
norm (A) norma
norm (A,n) norma-n
normest (A) estimación de la norma-2
39
• Funciones
• null (A) espacio nulo orth (A)
ortogonalización pinv (A) pseudoinversa
• poly (A) polinomio característico rank (A) rango
• rref (A) reducción mediante la eliminación deGauss trace (A) traza

tril (A) matriz triangular inferior a partir de la matriz A


triu (A) matriz triangular superior a partir de la matrizA
[VE,VA] = eig (A) VE son los vectores y VAson los valores propios
[L,U] = lu (A) factorización LU
[Q,R] = qr (A) factorización QR
40
Arreglos: Operadores relacionales con vectores y matrices
 Cuando alguno de los operadores relacionales (<, >, <=, >=, ==
y ∼=) actúa entre dos matrices del mismo tamaño, el
resultado es otra matriz de ese mismo tamaño conteniendo
unos y ceros, según los resultados de cada comparación 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
41
0 1 0
Arreglos: Operadores relacionales con vectores ymatrices

Funciones
any(x) función vectorial; verifica si alguno de los elementos del vector x
cumple una determinada condición.
any(A) se aplica por separado a cada columna de la matriz A. El
resultado es un vector de unos y ceros
all(x) función vectorial; verifica si todos los elementos del vectorx
cumplen una condición.
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 condición. El resultado es un vector con los
índices de los elementos que cumplen la condición
find(A) cuando esta función se aplica a una matriz la considera como un
vector con una columna detrás de otra. 42
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
43
Arreglos: Operadores relacionales con vectores y matrices
Ejemplos
>> A(m)=10*ones(size(m)) %sustituye los elementos que cumplen la condición
A= anterior por valores de10.
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 tamaño queA.
isinf(A) verifica si hay valores Inf en A, devolviendo una matriz deunos
y ceros del mismo tamaño que A.
isfinite(A) verifica si los valores de A son finitos.
isempty(A) verifica si un vector o matriz está vacío o tiene tamaño nulo.
issparse() verifica si una matriz es dispersa (sparse, es decir, con un
44
gran número de elementos cero).
Arreglos: Matrices

Ejemplos
>> x=[1 2 3 4 0/0 6]
Warning: Divide byzero
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 algún NaN
45

S-ar putea să vă placă și