Professional Documents
Culture Documents
CAPITULO II
VECTORES Y MATRICES
(ARRAYS)
El array (arreglo) es una estructura fundamental que MatLab utiliza para almacenar y
manipular datos.
En los arreglos unidimensionales (vectores) los números están agrupados en filas o
columnas.
En los arrays bidimensionales (matrices) los elementos se distribuyen en filas y
columnas.
Vector fila: entre cada elemento una coma o espacio, dentro de corchetes
Vector columna: entre cada elemento teclearse punto y coma ( ;)
Ejemplo N° 2.1: Dados los datos de una tabla demográfica
Año 1984 1986 1988 1990 1992 1994 1996
Población 127 130 136 145 158 178 211
(millones)
Generar un vector fila y un vector columna:
Solución:
>> yr=[2001 2002 2003 2004 2005 2006]
yr =
2001 2002 2003 2004 2005 2006
>> yr1=[2007,2008,2009]
yr1 =
2007 2008 2009
127 pob1 =
130 130
140 140
156 150
163
171
Ejemplo N° 2.2: Generar un vector fila y vector columna con valores de 10 a 18,
con incrementos de 1.
Solución:
>> a=[10:18] >> a=[10:18]'
a=
a= 10
11
10 11 12 13 14 15 16 17 18 12
13
14
15
16
17
18
Solución
a)>> x=[1:2:13] c)>> s=[-10:0.2:-
x= 8.5]'
1 3 5 7 9 11 13 s=
-10.0000
b)>> y=[1.5:0.1:2.1] -9.8000
y= -9.6000
1.5000 1.6000 1.7000 1.8000 1.9000 2.0000 2.1000 -9.4000
-9.2000
-9.0000
-8.8000
-8.6000
Nombre_variable = linspace(xi,xf,n)
Nombre_variable = logspace(a,b)
Genera un vector fila de de 50 puntos de logaritmos entre 10ª y 10 b.
>> logspace(1,2)
ans =
Columns 1 through 5
10.00 10.48 10.99 11.51 12.07 ………..
Columns 46 through 50
82.86 86.85 91.03 95.41 100.00
Nombre_variable = logspace(a,b,n)
Genera un vector fila de n elementos de logaritmos entre 10ª y 10b
>> logspace(1,2,5)
ans =
10.00 17.78 31.62 56.23 100.00
>> y=logspace(1,3,3)
y=
10 100 1000
r=logspace(1,4,4)
r=
10 100 1000 10000
Nombre_variable = [elementos 1ra fila; elementos 2da fila¸ elementos 3ra fila;
elementos 4ta fila; …..; elementos última fila]
Los elementos de una fila pueden estar separados con coma (,) o por un espacio.
Se debe colocar punto y coma (;) después de cada fila.
Ejemplo N°2.8: Generar una matriz 3x3, con elementos números cualesquiera.
Usar (;) después de cada fila
Ejemplo N°2.9: Generar una matriz de 3X3, con elementos números cualesquiera.
Usar enter después de cada fila
>> B=[20 30 40 B=
23 56 34 20 30 40
44 55 66] 23 56 34
44 55 66
Ejemplo N°2.10: Generar una matriz 2 x 3; con elementos que son variables y
expresiones matemáticas, siguientes:
cd = 6; e = 3; h = 4
j = cd * h; k = cos( pi / 4)
n = h2 ; h * e
Solución:
>> cd=6;e=3;h=4;
>> M=[e,cd*h,cos(pi/4);h^2,sqrt(h*e),14]
M=
3.0000 24.0000 0.7071
16.0000 3.4641 14.0000
Ejemplo N°2.11: Generar una matriz 4 x 6; usando el comando linespace para las
filas, use otras formas de ingreso vectorial para filas
Solución:
>> C=[1:2:11;0:5:25;linspace(10,20,6);30 40 50 60 70 80]
C=
1 3 5 7 9 11
0 5 10 15 20 25
10 12 14 16 18 20
30 40 50 60 70 80
Solución:
>> zr=zeros(3,4) >> nu=ones(4,3) >> dia=eye(5)
zr = nu = dia =
0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 1 1 1 0 1 0 0 0
0 0 0 0 1 1 1 0 0 1 0 0
1 1 1 0 0 0 1 0
0 0 0 0 1
MANIPULACION DE ARRAYS
2.4.1 Vectores
La dirección de un elemento de un vector es su posición en la Fila o columna
ve=[10 20 30 40]
ve(2)=20 ve(4)=40
ve(k); donde k es la posición del elemento k del vector ve
Solución:
>> ve=linspace(1,10,7)
ve =
1.0000 2.5000 4.0000 5.5000 7.0000 8.5000 10.0000
a) >> ve(2) >> valor7=ve(7)
ans = valor7 =
2.5000 10
>> ve(1)=100
ve =
100.0000 2.5000 400.0000 5.5000 7.0000 8.5000 10.0000
Solución:
>> v=[10:10:70] >> v([1 3 6])
v= ans =
10 20 30 40 50 60 70 10 30 60
2.4.2 Matrices
La dirección de un elemento de una matriz está definida a partir del número
de fila (k) y columna (p) de la misma matriz
ans = ans =
10 13
Solución
>> MAT=[3 11 6 5;4 7 10 2;13 9 0 8]
MAT =
3 11 6 5
4 7 10 2
13 9 0 8
Columna 3
a)>> A=MAT(:,3) Define el vector A, a partir
A= de los elementos de la
6 tercera columna de la matriz
10 MAT 3 11 6 5
0
4 7 10 2
13 9 0 8
b)>> B=MAT(2,:) Define el vector B, a partir
B= de los elementos de la
4 7 10 2 segunda fila de la matriz
MAT
Columna end
c)>> D=MAT(:,end) Define el vector D, a partir
D= de la última columna de la
5 matriz MAT
2 3 11 6 5
8
4 7 10 2
13 9 0 8
Filas 2 a 3
4 10
13 9 0 8
f)>> G=MAT(:,2:3) Define el vector G, a partir
G= de los elementos de las
11 6 columnas 2 y 3 de la matriz
7 10 MAT
9 0
Columnas 2 a 3
h)>> H=MAT(1:2,2:3) Define el vector H, a partir
H= de los elementos de las filas
11 6 1 a 2, columnas 2 a 3 de la
3 11 6 5
Filas 1 a 2
7 10 matriz MAT. Los elementos
resultantes son los
intersectados 4 7 10 2
13 9 0 8
Solución:
>> A=rand(5)
A=
0.4447 0.1763 0.8936 0.1389 0.1988
0.6154 0.4057 0.0579 0.2028 0.0153
0.7919 0.9355 0.3529 0.1987 0.7468
0.9218 0.9169 0.8132 0.6038 0.4451
0.7382 0.4103 0.0099 0.2722 0.9318
>> A([1 3 5],:)
ans =
0.4447 0.1763 0.8936 0.1389 0.1988
0.7919 0.9355 0.3529 0.1987 0.7468
0.7382 0.4103 0.0099 0.2722 0.9318
>> A([1 3 5],2)
ans =
0.1763
0.9355
0.4103
>> A([1 3 5],2:4)
ans =
0.1763 0.8936 0.1389
0.9355 0.3529 0.1987
0.4103 0.0099 0.2722
Ejemplo N°2.25: Generar una matriz “A” de 4x4, usando el comando rand, luego
efectuar las siguientes operaciones:
a) A partir de la matriz inicial “A”, generar el vector M1 que tenga todos los
elementos de la primera fila.
b) A partir de la matriz inicial “A”, generar el vector M2 que tenga todos los
elementos de la ultima fila.
c) A partir de la matriz inicial “A”, generar la matriz M3 que tenga todos los
elementos de las filas 2 a la 4.
d) A partir de la matriz inicial “A”, generar la matriz M4 que tenga todos los
elementos de las filas 2 y la 4.
e) A partir de la matriz inicial “A”, generar la matriz M5 que tenga todos los
elementos de la intersección de las filas 1 y 3, con las columnas 1 y 4
Ejemplo N°2.28: Generar una matriz 3 x 4; luego deberá generar otra matriz B que
contenga los elementos de las filas 1 y 3; así como las columnas 2 y 3; los
elementos resultantes son intersectados
MAT = >> B=MAT([1,3],[2,3])
3 11 6 5 B=
4 7 10 2 11 6
30 9 0 8 9 0
Ejemplo N°2.36:
Definir una matriz aleatoria de 4 x 3, luego insertar valores en las
posiciones (1,2) y (2,2)
5 6 7 8 5 6 7 8
30 32 34 36
Cuando a una variable se le asigna una variable, cada carácter le corresponde una
posición en el array.
PROBLEMAS
1. Crear un vector cuyo valor inicial sea 200 y su valor final sea 150, los valores
deben decrecer de 10 en 10
Solución:
>> M=[200:-10:150]
M=
200 190 180 170 160 150
3. Mostrar los elementos que están entre la segunda hasta la quinta ubicación
>> C=M(2:5)
C=
190 180 170 160
4. Cree un vector fila que contenga los elementos: 32, 4 , 81, e 2.5, cos (pi/3) y 14.12
Solución:
>> ve1=[32,4,81,exp(2.5),cos(pi/3),14.12]
ve1 =
32.0000 4.0000 81.0000 12.1825 0.5000 14.1200
6. Cree un vector fila en el cual el primer elemento sea 1 y el último elemento sea 33,
con incrementos de 2 entre cada elemento.
Solución:
>> vec3=[1:2:33]
vec3 =
Columns 1 through 16
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
Column 17
33
7. Cree un vector columna en el cual el primer elemento sea 15, el incremento sea -5,
y donde el último elemento sea -25
Solución:
>> vect4=[15:-5:-25]'
vect4 =
15
10
5
0
-5
-10
-15
-20
-25
8. Cree un vector fila con 15 elementos con iguales incrementos, en el cual el primer
elemento sea 7 y el último 40
Solución:
>> vect5=linspace(7,40,15)
vect5 =
Columns 1 through 9
7.0000 9.3571 11.7143 14.0714 16.4286 18.7857 21.1429 23.5000
25.8571
Columns 10 through 15
28.2143 30.5714 32.9286 35.2857 37.6429 40.0000
10. Cree un vector llamado aprimero, que tenga 16 elementos, siendo el primero el 4,
con incremento de 3 y siendo el último elemento 49.
Posteriormente utilice el símbolo dos puntos para crear un nuevo vector, llamado
asegundo, que tenga ocho elementos. Los primeros cuatro elementos serán los
primeros cuatro elementos del vector aprimero, y los cuatro últimos serán los
cuatro últimos elementos del vector aprimero.
Solución:
>> aprimero=[4:3:49]
aprimero =
4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49
>> asegundo=aprimero(:,[1:4,13:16])
asegundo =
4 7 10 13 40 43 46 49
11. Cree una matriz tal como la que se indica abajo, usar notación de vectores para
crear vectores con incrementos constantes, y/o el comando linspace para crear
filas
1 4 7 10 13 16 19 22 25
B = 72 66 60 54 48 42 36 30 24
0 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.00
Solución:
>> B=[1:3:25;72:-6:24;linspace(0,1,9)]
B=
1.0000 4.0000 7.0000 10.0000 13.0000 16.0000 19.0000 22.0000 25.0000
72.0000 66.0000 60.0000 54.0000 48.0000 42.0000 36.0000 30.0000 24.0000
0 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000
6 43 2 11 87
A = 12 6 34 0 5
34 18 7 41 9
a) Crear un vector fila de 5 elementos llamado va, que contenga los elementos de
la segunda fila de B
b) Crear un vector fila de 6 elementos llamado vb, que contenga los elementos de
la cuarta columna de B
c) Crear un vector fila de 10 elementos llamado vc, que contenga los elementos de
la primera y segunda fila de B
d) Crear un vector de seis elementos llamado vd que contenga los elementos de la
segunda y la quinta columna de B
Solución:
>> B=[6 43 2 11 87;12 6 34 0 5;34 18 7 41 9]
B=
6 43 2 11 87
12 6 34 0 5
34 18 7 41 9
a)>> va=B(2,:)
va =
12 6 34 0 5
b)>> vb=B(:,4)
vb =
11
0
41
c)>> vc=[B(1,:),B(2,:)]
vc =
6 43 2 11 87 12 6 34 0 5
d)>> bb=[B(:,2);B(:,5)]'
bb =
43 6 18 87 5 9
2 4 6 8 10
C = 3 6 9 12 15
7 14 21 28 35
Luego utilice esta matriz para resolver:
a) Crear un vector columna de tres elementos llamado ca, que contenga los
elementos de la tercera columna de C
b) Crear un vector columna de cinco elementos llamado cb, que contenga los
elementos de la segunda fila de C
c) Crear un vector columna de nueve elementos llamado cc, que contenga los
elementos de la primera, tercera y quinta columna de C
d) Crear un vector columna de diez elementos llamado cd, que contenga los
elementos de la primera, y segunda fila de C
Solución:
>> C=[[2:2:10];[3:3:15];[7:7:35]]
C=
2 4 6 8 10
3 6 9 12 15
7 14 21 28 35
a)>> ca=C(:,3) b)>> cb=C(2,:)'
ca = cb =
6 3
9 6
21 9
12
15
c)>> cc=[C(:,1);C(:,3);C(:,5)] d)>> cd=[C(1,:),C(2,:)]
cc = cd =
2 2 4 6 8 10
3 3 6 9 12 15
7
6
9
21
10
15
35
1 2 3 4 5 6 7
2 4 6 8 10 12 14
A=
21 18 15 12 9 6 3
5 10 15 20 25 30 35
a) Cree una matriz B de 3x4 a partir de la primera, tercera y cuarta fila, y de la
primera, tercera, quinta y septima columna
b) Crear un vector fila de 15 elementos llamado “u”, a partir de los elementos de la
tercera fila y de la quinta a la sexta columna de la matriz A
Solución:
Se trata se creación de nuevas matriz y vector a partir de la matriz A
>> A=[1:7;2:2:14;21:-3:3;5:5:35]
A=
1 2 3 4 5 6 7
2 4 6 8 10 12 14
21 18 15 12 9 6 3
5 10 15 20 25 30 35
>> R=[A(3,:),A(17:24)]
R=
21 18 15 12 9 6 3 5 10 9 25 6 12 6 30
15. Utilizando las funciones zeros, ones y eye, crear los siguientes arrays
0 0 0 0 1 0 0 0 1 1
0 0 0 0 0 1 0 0 1 1
0 0 1 0 1 1
0 0 0 1
Solución:
>> A=zeros(2,4) >> B=eye(4) >> C=ones(3,2)
A= B= C=
0 0 0 0 1 0 0 0 1 1
0 0 0 0 0 1 0 0 1 1
0 0 1 0 1 1
0 0 0 1
16. Usando los comandos ones y zeros, crear una matriz de 4 x 5, en la cual las
primeras filas sean ceros y las dos siguientes sean unos
Solución:
Crear la Matriz, luego usar las instrucciones de adición de elementos a una matriz
Mat(a:c,d:f)=[lelementos]
En la cual se añaden filas 3 y 4 con unos
>> A=zeros(2,5) >> A(3:4,:)=ones(2,5)
A= A=
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1 1 1 1 1
1 1 1 1 1
17. Crear una matriz de 6 x 6 en la cual las dos filas centrales, junto a las dos
columnas centrales sean unos, el resto de elementos deben ser ceros.
Solución:
Se creará una matriz de ceros
usar las instrucciones de adición de elementos a una matriz
Mat(a:c,d:f)=[lelementos]
18. Utilizando las funciones zeros y ones, crear una matriz 3x5, la cual debe tener la
siguiente forma final
0 0 1 1 0
D = 0 0 1 1 0
0 0 1 1 0
Solución:
Se deberá usar adicionar nuevos valores (matriz de unos de tamaño 3x2 ) a la
matriz D
>> A=zeros(3,5) >> A(7:12)=ones(3,2)
A= A=
0 0 0 0 0 0 0 1 1 0
0 0 0 0 0 0 0 1 1 0
0 0 0 0 0 0 0 1 1 0
19. Crear una matriz de 5 x 7 en la cual la primera fila tenga los números 1 al 7, en la
segunda tenga los números del 8 al 14, la tercera los números del 15 al 21, así
sucesivamente.
A partir de esta matriz, crear otra nueva de 3 x 4 compuesta por las filas 2 a la 4 y
las columnas 3 a la 6
Solución:
Se usará el procedimiento creación de nuevas matrices a parir de otras existentes
Nueva matriz=(filas, columnas)
>> A=[1:7;8:14;15:21;22:28;29:35] >> B=A(2:4,3:6)
A= B=
1 2 3 4 5 6 7 10 11 12 13
8 9 10 11 12 13 14 17 18 19 20
15 16 17 18 19 20 21 24 25 26 27
22 23 24 25 26 27 28
29 30 31 32 33 34 35