Documentos de Académico
Documentos de Profesional
Documentos de Cultura
02 Arrays
02 Arrays
II. ARRAYS
Un arrays es simplemente un arreglo rectangular de números, que puede ser unidimensional (Vector) o bidimensional
(Matriz).
A = ( ai j )
m �n
Los arrays también pueden estar compuestos por caracteres no numéricos, llamados cadenas o strings.
>> abscisa=[2 3 4 5 6 7]
abscisa = 2 3 4 5 6 7
>> ordenada=[6 9 4 14 21 30 41]
ordenada = 6 9 4 14 21 30 41
>>
02 Arrays 1
02 – ARRAYS Lic. Amado Malca Villalobos
1996
>> Poblacion=[127;130;136;145;158;178;211]
Poblacion =
127
130
136
145
158
178
211
>>
Así podemos ver que es un vector donde el primer elemento es a , el espacio o distancia es r , y el último término es
b , se crea con la siguiente sintaxis:
nombre _ var iable = [a : r : b]
nombre _ var iable = a : r : b
Si no se indica el valor de r, por defecto es 1.
nombre _ var iable = a : b
Ejemplos:
>> x=[4:17:81]
x = 4 21 38 55 72
>> x=[4:17:89]
x = 4 21 38 55 72 89
>> x=[4:9]
x= 4 5 6 7 8 9
>> x=[12:-3:-20]
x = 12 9 6 3 0 -3 -6 -9 -12 -15 -18
>> x=[8:-3:20]
x = Empty matrix: 1-by-0
>>
>> v1=linspace(4,20,8)
v1 = 4.0000 6.2857 8.5714 10.8571 13.1429 15.4286 17.7143 20.0000
>> v2=linspace(4,20,9)
V2 = 4 6 8 10 12 14 16 18 20
>> v3=linspace(4,20,-9)
v3 = 20
>> v4=linspace(3.5,-20.5)
v4 = Columns 1 through 4 Columns 97 through 100
3.5000 3.2576 3.0152 20.0152 -20.2576 -20.5000
02 Arrays 2
02 – ARRAYS Lic. Amado Malca Villalobos
>>
En este caso los números se distribuyen en filas (horizontal) y columnas (vertical). Son utilizadas en el Algebra Lineal,
y se usan para linealizar los problemas, es decir para suavizarlos.
Los elementos de una matriz se ingresan fila por fila, separados por punto y coma. También se pueden separar las filas
por un enter.
nombre _ var iable = [ fila _ uno; fila _ dos;.......; ultima _ fila ]
nombre _ var iable = [ fila _ uno
fila _ dos
....
ultima _ fila ]
También una matriz se puede crear fila por fila con el comando linspace y el operador dos puntos, ya descritos
anteriormente.
Comando Descripcion
A=zeros(m,n) Crea una matriz de orden m �n , con ceros
02 Arrays 3
02 – ARRAYS Lic. Amado Malca Villalobos
>> A=zeros(2,3)
A= 0 0 0
0 0 0
>> A=zeros(2)
A= 0 0
0 0
>> B=eye(3,5)
B= 1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
>> D=ones(3,5)
D= 1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
>>
El operador transposición
El operador transposición, cuando se aplica a un array, transforma la fila en columna y viceversa. El comando se
expresa solo con una comilla simple: ' (alt 39)
Además tiene las siguientes propiedades:
( A ') ' = A ( A + B ) ' = A '+ B ' ( A - B ) ' = A '- B ' ( A B) ' = B ' A'
Si se tiene una matriz M cuyos elementos son complejos, entonces M ' es la transpuesta y
conjugada de M. Si se desea solo transponer la matriz M, se pueden usar M . ' , también se puede
utilizar transpose ( M )
02 Arrays 4
Manipulación de Arrays
A veces se hace necesario la extracción, cambio o reducción de términos de un array. También a veces se necesita
agregar elementos a estos arreglos.
Vectores
>> v1=[6 8 -4 3 2 1 0 9 2 -5]
v1 = 6 8 -4 3 2 1 0 9 2 -5
>>
Reasignando valores
>> v1(6) % mostrando el sexto elemento del vector v1
ans = 1
>> v1(6)=12 % asignando un Nuevo valor al sexto elemento de v1
v1 = 6 8 -4 3 2 12 0 9 2 -5
>> v1(3)+5*v1(7)-6*v1(2)
ans = -52
>> 8*v1(2)+7*v1(5)-(v1(7)+2)^2
ans = 74
>>
Matrices
Al igual que en el caso de vectores se tiene las mismas inquietudes. Para ello hay que tener en cuenta que, si A es una
matriz de orden m �n , entonces se tienen las siguientes opciones para los elementos de tal matriz:
A = ( ai j )
m�n Matriz de orden m �n
A ( i, j )
Elemento de A, ubicado en la fila i y columna j.
A(k ) k-esimo elemento deA, considerando a la matriz como un vector
Una matriz en MatLab se puede leer como si fuera de una sola columna, considerando las columnas una a continuación
de la otra. En donde la indización seria en forma de columna.
En vectores
Expresión Descripcion
v ( :) Indica todos los elementos del vector v.
v ( m : n) Indica los elementos del vector, desde la
posición m hasta la posición n.
v ( m : k : n) Indica los elementos del vector, desde la
posición m hasta la posición n, con un
incremento k. El valor de k puede ser
negativo, siempre que m > n
En Matrices
Expresión Descripcion
A ( :, n ) Indica todos los elementos de la columna n
A ( m,:) Indica todos los elementos de la fila m
A ( :, m : n ) Indica los elementos de las columnas m hasta la n.
A ( :, m : k : n ) Indica los elementos de las columnas m hasta la n,
con un incrento k.
A ( m : n,:) Indica los elementos de las filas m hasta la n.
A ( m : n, p : q ) Indica los elementos de las filas m hasta la n, y las
columnas desde la p hasta la q.
En vectores
>> u=[6 8 -4 3 2 ] % vector de 5 elementos
u = 6 8 -4 3 2
>> u(8)=12 % se añade un octavo elemento, a los intermedios se les asigna el valor cero
u = 6 8 -4 3 2 0 0 12
>> u(3)=42 % se cambia el tercer valor
u = 6 8 42 3 2 0 0 12
>> u(3:7)=2*u(3:7) % del tercero al séptimo se les duplica su valor
u = 6 8 84 6 4 0 0 12
>> u(3:7)=-4*u(3:7)
u = 6 8 -336 -24 -16 0 0 12
>> w(7)=15 % Creación de un vector w
w = 0 0 0 0 0 0 15
>> w(1:6)=1:6 % reasignado valores a w
w = 1 2 3 4 5 6 15
>> v=[u w] % concatenando el vector u con w
v = 6 8 -336 -24 -16 0 0 12 1 2 3 4 5 6 15
>>
En matrices
>> A=[6 8 3 6;5 1 0 9;6 9 7 8]
A=
6 8 3 6
5 1 0 9
6 9 7 8
>> A(4,5)=60
A=
6 8 3 6 0
5 1 0 9 0
6 9 7 8 0
0 0 0 0 60
>> A(:,5)=20:10:50
A=
6 8 3 6 20
5 1 0 9 30
6 9 7 8 40
0 0 0 0 50
>> A(4,:)=17:10:57
A=
6 8 3 6 20
5 1 0 9 30
6 9 7 8 40
17 27 37 47 57
>> D=eye(4)
D=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> E=[A D]
E=
6 8 3 6 20 1 0 0 0
5 1 0 9 30 0 1 0 0
6 9 7 8 40 0 0 1 0
17 27 37 47 57 0 0 0 1
>> E(:,5)=ones(4,1)
E=
6 8 3 6 1 1 0 0 0
5 1 0 9 1 0 1 0 0
6 9 7 8 1 0 0 1 0
17 27 37 47 1 0 0 0 1
>>
Eliminación de elementos
Para eliminar filas y/o columnas en un array, solo hay que asignarle un array vacio: [ ]
>> p=[6 8 -4 3 2]
p = 6 8 -4 3 2
>> p(3)=[]
p= 6 8 3 2
>> p(1)=[]
p= 8 3 2
>>
Variables en Memoria
Para visualizar las variables que aun están en memoria, cuando se está ejecutando MatLab, se usa el comando who .
También tenemos el comando whos , que además de lo anterior visualiza el tamaño, bytes y clase de las variables actuales en la memoria.
>> who
Your variables are:
A B D E G ans p u v w
>> whos
Name Size Bytes Class Attributes
A 3x4 96 double
B 2x3 48 double
D 4x4 128 double
E 4x8 256 double
G 2x3 48 double
ans 3x1 24 double
p 1x2 16 double
u 1x5 40 double
v 1x3 24 double
w 0x0 0 double
>>
Problemas de aplicación
Problema 2.1: Creación de una matriz
Crear una matriz de orden 4 �5 , en la cual las primeras dos filas sean ceros y las dos siguientes sean unos.
Solución:
>> F=zeros(2,5)
F= 0 0 0 0 0
0 0 0 0 0
>> G=ones(2,5)
G= 1 1 1 1 1
1 1 1 1 1
>> H=[F; G]
H= 0 0 0 0 0
0 0 0 0 0
1 1 1 1 1
1 1 1 1 1
>>
También puede hacerse así:
>> K(1:2,:)=zeros(2,5)
K=
0 0 0 0 0
0 0 0 0 0
>> K(3:4,:)=ones(2,5)
K=
0 0 0 0 0
0 0 0 0 0
1 1 1 1 1
1 1 1 1 1
>>
Problema 2.2: Creación de una matriz
Crear una matriz 6 �6 en la cual las dos filas centrales, junto con las dos columnas centrales, sean uno, siendo el resto
de elementos ceros.
Solución:
>> D=zeros(6,6)
D=
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
>> D(3:4,:)=ones(2,6)
D=
0 0 0 0 0 0
0 0 0 0 0 0
1 1 1 1 1 1
1 1 1 1 1 1
0 0 0 0 0 0
0 0 0 0 0 0
>> D(:,3:4)=ones(6,2)
D=
0 0 1 1 0 0
0 0 1 1 0 0
1 1 1 1 1 1
1 1 1 1 1 1
0 0 1 1 0 0
0 0 1 1 0 0
Solución:
Datos Cambios con tres comandos
>>A=[2:3:17;3:3:18;4:3:19;5:3:20;6:3:21] >>A([1 3],[3 4 5 6])=B([1 2],[1 2 3 4])
A= A=
2 5 8 11 14 17 2 5 5 10 15 20
3 6 9 12 15 18 3 6 9 12 15 18
4 7 10 13 16 19 4 7 30 35 40 45
5 8 11 14 17 20 5 8 11 14 17 20
6 9 12 15 18 21 6 9 12 15 18 21
>> B=[5:5:30;30:5:55;55:5:80] >> A(4,[3:6])=v([5:8])
B= A=
5 10 15 20 25 30 2 5 5 10 15 20
30 35 40 45 50 55 3 6 9 12 15 18
55 60 65 70 75 80 4 7 30 35 40 45
>> v=[99:-1:91] 5 8 95 94 93 92
v = 99 98 97 96 95 94 93 92 91 6 9 12 15 18 21
>> A(5,[3:6])=B(3,[2:5])
A=
2 5 5 10 15 20
3 6 9 12 15 18
4 7 30 35 40 45
5 8 95 94 93 92
6 9 60 65 70 75
>>
En realidad estas funciones se pueden aplicar también a matrices, pero en ese caso se
aplican por separado a cada columna de la matriz, dando como valor de retorno un
vector resultado de aplicar la función a cada columna de la matriz considerada como
vector. Si estas funciones se quieren aplicar a las filas de la matriz basta aplicar dichas
funciones a la matriz traspuesta.