Escolar Documentos
Profissional Documentos
Cultura Documentos
.
Si no se indica el valor de n, por defecto es 100.
>> 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
>>
CREACION DE ARRAY BIDIMENSIONALES (MATRICES)
En este caso los nmeros 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. Tambin se pueden separar
las filas por un enter.
_ var [ _ ; _ ;.......; _ ] nombre iable fila uno fila dos ultima fila =
02 ARRAYS Lic. Amado Malca Villalobos
3
_ var [ _
_
....
_ ]
nombre iable fila uno
fila dos
ultima fila
=
Considere la matriz A de tres filas y cuatro columnas:
5 8 4 3
5 2 1 0
6 9 2 5
A
| |
|
=
|
|
\ .
>> A=[6 8 -4 3;5 2 1 0;6 9 2 -5]
A =
6 8 -4 3
5 2 1 0
6 9 2 -5
>> A=[6 8 -4 3
5 2 1 0
6 9 2 -5]
A =
6 8 -4 3
5 2 1 0
6 9 2 -5
>> A=[6 8 -4 3,5 2 1 0,6 9 2 -5]
A = 6 8 -4 3 5 2 1 0 6 9 2 -5
>> a=8;b=sqrt(5);m=exp(3);p=pi;
>> D=[a+b b+m p+a+b;m+log(8) 2*a+7*b sin(pi/2)]
D = 10.2361 22.3216 13.3777
22.1650 31.6525 1.0000
>>
Tambin una matriz se puede crear fila por fila con el comando linspace y el operador dos puntos, ya descritos
anteriormente.
>> D=[linspace(3,11,5);2 7 2 5 7;linspace(1,6,5)]
D = 3.0000 5.0000 7.0000 9.0000 11.0000
2.0000 7.0000 2.0000 5.0000 7.0000
1.0000 2.2500 3.5000 4.7500 6.0000
>> D=[linspace(8,-8,5);2:7:35;linspace(11,16,5);5:-2:-4]
D = 8.0000 4.0000 0 -4.0000 -8.0000
2.0000 9.0000 16.0000 23.0000 30.0000
11.0000 12.2500 13.5000 14.7500 16.0000
5.0000 3.0000 1.0000 -1.0000 -3.0000
>>
Creacin de matrices bsicas
En el momento de la programacin, es necesario inicializar la o las variables con algn valor inicial, que por lo
general es 1 0. Para ello necesitaremos la creacin de algunos arrays con estos nmeros.
Comando Descripcion
A=zeros(m,n) Crea una matriz de orden m n , con ceros
B=zeros(n) Crea una matriz de orden n n , con ceros
C=ones(m,n) Crea una matriz de orden m n , con unos
D=ones(n) Crea una matriz de orden n n , con unos
E=eye(n) Crea la matriz de orden n n , con unos en la
diagonal, y ceros en el resto de lugares
F=eye(m,n) Crea la matriz de orden m n , con unos en
la diagonal principal, y ceros en el resto
>> A=zeros(2,3)
02 ARRAYS Lic. Amado Malca Villalobos
4
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 transposicin
El operador transposicin, cuando se aplica a un array, transforma la fila en columna y viceversa. El comando se
expresa solo con una comilla simple: ' (alt 39)
Ademas tiene las siguientes propiedades:
( )' ' ' A B A B + = +
( )' ' ' A B A B =
( )' ' ' AB B A =
>> A=[6 8 -4 3;5 2 1 0;6 9 2 -5]
A = 6 8 -4 3
5 2 1 0
6 9 2 -5
>> A'
ans = 6 5 6
8 2 9
-4 1 2
3 0 -5
>>
Manipulacin de Arrays
A veces se hace necesario la extraccin, cambio o reduccin de trminos de un array. Tambin 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)
ans = 1
>> v1(6)=12
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:
( )
i j
m n
A a
=
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
>> A=[6 8 -4 3;5 2 1 0;6 9 2 -5]
A = 6 8 -4 3
02 ARRAYS Lic. Amado Malca Villalobos
5
5 2 1 0
6 9 2 -5
>> A(2,3)
ans = 1
>> A(9)
ans = 2
>> A(10)
ans = 3
>> A(3,4)
ans = -5
>> A(3),A(9),A(11),A(3)+6*A(9)-8*A(11)
ans = 6
ans = 2
ans = 0
ans = 18
>>
Utilizacin de dos puntos en la manipulacin de arrays
El operador dos puntos genera un rango de nmeros, en un array.
En vectores
Expresin Descripcion
( ) : v
Indica todos los elementos del vector v.
( ) : v m n
Indica los elementos del vector, desde la
posicin m hasta la posicin n.
( ) : : v m k n
Indica los elementos del vector, desde la
posicin m hasta la posicin n, con un
incremento k.
>> u=[6 8 -4 3 2 1 0 9 2 -5]
u = 6 8 -4 3 2 1 0 9 2 -5
>> u(:)
ans = 6
8
-4
3
2
1
0
9
2
-5
>> u(3:7)
ans = -4 3 2 1 0
>> u(1:2:10)
ans = 6 -4 2 0 2
>> u(9:-1:1)
ans = 2 9 0 1 2 3 -4 8 6
>>
En Matrices
Expresin 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 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.
>> A=[6 8 -4 3 6 1;5 2 1 0 9 8;6 9 2 -5 7 0;4 8 12 3 9 2]
02 ARRAYS Lic. Amado Malca Villalobos
6
A = 6 8 -4 3 6 1
5 2 1 0 9 8
6 9 2 -5 7 0
4 8 12 3 9 2
>> A(:,6)
ans = 1
8
0
2
>> A(3,:)
ans = 6 9 2 -5 7 0
>> A(2:3,3:6)
ans = 1 0 9 8
2 -5 7 0
>> A(2:3,6:-1:1)
ans = 8 9 0 1 2 5
0 7 -5 2 9 6
>> A,B=A([1,4],[2,4,5])
A =
6 8 -4 3 6 1
5 2 1 0 9 8
6 9 2 -5 7 0
4 8 12 3 9 2
B = 8 3 6
8 3 9
>>
Adicin de nuevos elementos a variables ya creadas
En un array que ya ha sido creado se pueden agregar o modificar elementos, con solamente asignar un valor.
En vectores
>> u=[6 8 -4 3 2 ]
u = 6 8 -4 3 2
>> u(8)=12
u = 6 8 -4 3 2 0 0 12
>> u(3)=42
u = 6 8 42 3 2 0 0 12
>> u(3:7)=2*u(3:7)
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
w = 0 0 0 0 0 0 15
>> w(1:6)=1:6
w = 1 2 3 4 5 6 15
>> v=[u 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 =
02 ARRAYS Lic. Amado Malca Villalobos
7
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
>>
Eliminacin 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
>>
>> G=[16 82 31 16;55 77 40 90;66 23 56 84]
G = 16 82 31 16
55 77 40 90
66 23 56 84
>> G(:,2)=[]
G = 16 31 16
55 40 90
66 56 84
>> G(1,:)=[]
G = 55 40 90
66 56 84
>>
FUNCIONES PARA LA MANIPULACION DE ARRAYS
Existe una gran variedad de funciones en MatLab, para cada cometido. Estas se pueden hallar en la ventana de
ayuda del MatLab.
Funcin Descripcin Ejemplo
( ) length v
Devuelve el nmero de
elementos del vector v.
>> v=[6 8 -4 3 2]
v = 6 8 -4 3 2
>> length(v)
ans = 5
>> w=[]
w = []
02 ARRAYS Lic. Amado Malca Villalobos
8
>> length(w)
ans = 0
( ) length A
Devuelve el valor mximo
de {m,n}, siendo m n
el orden de la matriz A.
>> A=[6 8; 3 6;5 1]
A = 6 8
3 6
5 1
>> length(A)
ans = 3
( ) size A
Devuelve un vector fila
[m,n], donde m y n
representan el tamao de la
matriz A
>> A
A = 6 8
3 6
5 1
>> size(A)
ans = 3 2
( ) , , reshape A m n
Reordena una matriz A, de
orden r s a una de
orden m n . Siempre que
r s m n =
>> A
A = 6 8
3 6
5 1
0 9
>> reshape(A,2,4)
ans = 6 5 8 1
3 0 6 9
( ) diag v
Si v es un vector, se crea
una matriz cuadrada con
los elementos de v en la
diagonal
>> v=[6 8 2]
v = 6 8 2
>> diag(v)
ans =
6 0 0
0 8 0
0 0 2
( ) diag A
Si A es una matriz, se crea
un vector a partir de los
elementos de la diagonal
de A
>> A=[120 56 80 78;13 450
67 45;89 56 610 56]
A = 120 56 80 78
13 450 67 45
89 56 610 56
>> diag(A)
ans = 120
450
610
Variables en Memoria
Para visualizar las variables que aun estn en memoria, cuando se est ejecutando MatLab, se usa el comando
who.
Tambin tenemos el comando whos , que adems de lo anterior visualiza el tamao, 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 aplicacin
Problema 2.1: Creacin 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.
Solucin:
>> 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
02 ARRAYS Lic. Amado Malca Villalobos
9
1 1 1 1 1
>>
Tambin 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: Creacin 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.
Solucin:
>> 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
Problema 2.3: Manipulacin de matrices
Sean dos matrices, una A de tamao 5 6 , y otra B de tamao 3 5 . Sea tambin un vector v de longitud 9.
2 5 8 11 14 17
3 6 9 12 15 18
4 7 10 13 16 19
5 8 11 14 17 20
6 9 12 15 18 21
A
| |
|
|
| =
|
|
|
\ .
5 10 15 20 25 30
30 35 40 45 50 55
55 60 65 70 75 80
B
| |
|
=
|
|
\ .
( ) 99 98 97 96 95 94 93 92 91 v =
Y luego con un solo comando que remplace:
a) Las cuatro ltimas columnas de las filas 1 y 3 de A por las cuatro primeras columnas de las primeras dos filas de la matriz B.
b) Las cuatro ltimas columnas de la cuarta fila de A por los elementos 5 a 8 de v.
c) Las cuatro ltimas columnas de la quinta fila de A por las columnas 3 a 5 de la tercera fila de B.
Solucin:
Datos Cambios con tres comandos
>>A=[2:3:17;3:3:18;4:3:19;5:3:20;6:3:21]
A =
2 5 8 11 14 17
3 6 9 12 15 18
4 7 10 13 16 19
5 8 11 14 17 20
6 9 12 15 18 21
>> B=[5:5:30;30:5:55;55:5:80]
B =
5 10 15 20 25 30
30 35 40 45 50 55
55 60 65 70 75 80
>> v=[99:-1:91]
v = 99 98 97 96 95 94 93 92 91
>>A([1 3],[3 4 5 6])=B([1 2],[1 2 3 4])
A =
2 5 5 10 15 20
3 6 9 12 15 18
4 7 30 35 40 45
5 8 11 14 17 20
6 9 12 15 18 21
>> A(4,[3:6])=v([5:8])
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 12 15 18 21
>> A(5,[3:6])=B(3,[2:5])
A =
2 5 5 10 15 20
02 ARRAYS Lic. Amado Malca Villalobos
10
3 6 9 12 15 18
4 7 30 35 40 45
5 8 95 94 93 92
6 9 60 65 70 75
>>
Datos Con un solo comando
>> A=[2:3:17;3:3:18;4:3:19;5:3:20;6:3:21];
>> B=[5:5:30;30:5:55;55:5:80];
>> v=[99:-1:91];
>> A([1 3 4 5],[3:6])=[B([1
2],[1:4]);v([5:8]);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
Cadenas de caracteres y variables de tipo string
Una cadena o string es simplemente un array de caracteres. Para crear una cadena solo es necesario teclear los
caracteres que la formen entre comillas simples.
No se incluye la letra ee y los acentos.
>> M=['calculo' 'ad hoc' '%&$j']
M =calcuload hoc%&$j
>> M=['calculo';'ad hoc';'% & $ j']
M =
calculo
ad hoc
% & $ j
>> N=['geo','$5437','? PO']
N =geo$5437? PO
>> N=['geofi','$5437','? PO']
N =geofi$5437? PO
>>