Documente Academic
Documente Profesional
Documente Cultură
2018
1
Arreglos
2
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
5
Arreglos: Vectores
6
Arreglos: 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
>> x (2:4) %devuelve desde el segundo hasta al cuarto elemento del vector x
ans =
7 -2 4
8
Arreglos: Vectores
9
Arreglos: Vectores
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];
11
Arreglos: Vectores
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
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
16
Arreglos: Vectores
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, ab y ab.
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
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
27
Arreglos: Matrices
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;
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
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
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