You are on page 1of 55

S egurida d en I nternet

Oriol Roca
A r r e g l o s
ARREGLOS EN MATLAB
M a t L a b
www.upibi.net
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Arreglos
Estructura de datos que permite almacenar varios datos bajo el mismo Estructura de datos que permite almacenar varios datos bajo el mismo
nombre. nombre.
A r r e g l o s
VECTORES VECTORES: son unidimensionales : son unidimensionales
0 2 4 6 8
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Vectores
Para crear y almacenar en memoria un vector v que tenga como
componentes v1 0! v2 2! v" 4! v4 6 y v# 8 podemos $acerlo
componente a componente:
V e c t o r e s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Arreglos
Estructura de datos que permite almacenar varios datos bajo el mismo Estructura de datos que permite almacenar varios datos bajo el mismo
nombre. nombre.
A r r e g l o s
VECTORES VECTORES: Para acceder a los elementos de un vector : Para acceder a los elementos de un vector


v%1&0
v%1&0
v%2&2
v%2&2
0 2 4 6 8
1
2 " 4 #
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
V e c t o r e s
Vectores de fila y de columna
'(a di)erencia entre un vector )ila y un vector columna es )undamental.
'Para introducir un vector )ila en *+,(+- basta con escribir las componentes del
vector dentro de corc$etes y separadas por espacios en blanco:
'Para introducir un vector columna se escriben las componentes dentro de
corc$etes y separadas por el car.cter punto y coma:
' En *+,(+- es posible trans)ormar un vector )ila en un vector columna y
viceversa %$allar su traspuesta& empleando una comilla simple:
vtv!
v"# $ % & '(
v"#) $) %) &) '(
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
V e c t o r e s
/! para simpli)icar la creaci0n de vectores! se puede de)inir un vector especi)icando
su primer elemento! un incremento! y el 1ltimo elemento. +s2 podemos de)inir
igualmente el vector v como una secuencia que empie3a en 0! avan3a de 2 en 2 y
que termina en el 8:
lins*ace+#)'),-
Valor inicial Valor final N.mero de elementos
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Vectores
Puedes acceder ).cilmente al contenido de una posici0n del vector! por
ejemplo la primera. / modi)icarla:
V e c t o r e s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Vectores
V e c t o r e s
Podemos obtener un elemento del vector llam.ndolo
44 v%"&
4
/btener porciones del vector es tan ).cil como obtener elementos.
-asta con separar el primer 2nidice del 1ltimo con dos puntos
44 v%2:4&
2 4 6
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Vectores
V e c t o r e s
5na t6cnica importante en *atlab es la concatenaci0n de dos vectores!
que puede $acerse simplemente peg.ndolos
// a "0)$)1(2
// 3 "%),)&(2
// c"a)3(
0 $ 1 % , &
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Vectores
V e c t o r e s
+lgunas veces es necesario introducir un vector con componentes a intervalos
regulares. Esto se reali3a ).cilmente con *+,(+- con la estructura
inicio4incremento4fin. 7i no se proporciona un incremento! *+,(+- asume que es
1.
44 50#40#
7e puede seleccionar el propio incremento.
44 5$#4$40#
7e puede ir incluso $acia atr.s.
44 510#46$40
/ se le puede ec$ar imaginaci0n.
44 5%#4*i7$4$8*i
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Leer Vector
A r r e g l o s
ninput% ninput%89:u.ntos elementos deseas; 89:u.ntos elementos deseas; < <&= &=
)or i1:n )or i1:n
)print)%<introduce el >g elemento del vector <!i&= )print)%<introduce el >g elemento del vector <!i&=
vec%i&input% vec%i&input%< < < <&= &=
end end
disp%vec& disp%vec&
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Buscar *osici9n de un elemento de un vector
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Buscar *osici9n de un elemento de un vector
A r r e g l o s
ninput%<9:u.ntos elementos deseas; <&= ninput%<9:u.ntos elementos deseas; <&=
)or i1:n )or i1:n
)print)%<introduce el >g elemento del vector <!i&= )print)%<introduce el >g elemento del vector <!i&=
vec%i&input%< <&= vec%i&input%< <&=
end end
?input%<9@u6 elemento quieres buscar; <& ?input%<9@u6 elemento quieres buscar; <&
)or i1:n )or i1:n
i) v%i&? i) v%i&?
)print)%< El dato >g est. en la posici0n >gAn <!?!i&= )print)%< El dato >g est. en la posici0n >gAn <!?!i&=
end end
end end
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Buscar elemento dada su *osici9n
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Eliminar Vector
:efine un vector ;t de 0# elementos
//;t"$ ' %# &1 1 ,, $1 0, <, '#(
;t
$ ' %# &1 1 ,, $1 0, <, '#
//;t+&-" ( =elimina el se5to elemento
;t
=el vector a>ora tiene ? elementos
$ ' %# &1 1 $1 0, <, '#
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Eliminar Vector
:efine un vector ;t de 0# elementos
//;t+14&-" ( =Elimina elementos de las *osiciones 1 a la &
;t
=el vector a>ora tiene , elementos
$ ' 0, <, '#
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Suma de Elementos +Vector-
A r r e g l o s
+B6 C D " 12 6 8E +B6 C D " 12 6 8E
Para esto debemos usar un acumulador %acu& Para esto debemos usar un acumulador %acu&
6 C D " 12 6 8
+
1 2 " 4 # 6 D
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Suma de Elementos +Vector-
A r r e g l o s
+B6 C D " 12 6 8E +B6 C D " 12 6 8E
acu0= acu0=
v)input%<:uantos elementos deseas; <&= v)input%<:uantos elementos deseas; <&=
)or i1:v) )or i1:v)
)print)%<introduce el >g elemento del vector <!i&= )print)%<introduce el >g elemento del vector <!i&=
vec%i&input%< <&= vec%i&input%< <&=
acu acu F vec%i&= acu acu F vec%i&=
end end
disp%acu& disp%acu&
6 C D " 12 6 8
+
1 2 " 4 # 6 D
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Suma de Elementos +Vector-
A r r e g l o s
/tra manera m.s sencilla de sumar los elementos de un vector es /tra manera m.s sencilla de sumar los elementos de un vector es
utili3ar el comando: utili3ar el comando:
sum+ -
sum+ -
sum+A-
sum+A-
ans
ans


,0
,0
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Vector fila
A r r e g l o s
+B1 2 " 4 # 6E +B1 2 " 4 # 6E
A
A


0 $ 1 % , &
0 $ 1 % , &
Vector columna
-B1= 2= "= 4= #= 6E -B1= 2= "= 4= #= 6E
B
0
$
1
%
,
&
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Tama@o de un Vector
A r r e g l o s
siAe+A- devuelve el n1mero de )ilas y de columnas de la matri3 A.
siAe+A-
ans
0 &
0 $ 1 % , & 0 $ 1 % , &
lengt>+A- calcula el n1mero de elementos de un vector +
ans
&
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
EBercicio
A r r e g l o s
/btener la suma de los pares e impares /btener la suma de los pares e impares de un vector dado por de un vector dado por
el usuario el usuario
Gebemos emplear 2 acumuladores: %pares e impares& que nos Gebemos emplear 2 acumuladores: %pares e impares& que nos
permitan sumar los elementos correspondientes! adem.s de la permitan sumar los elementos correspondientes! adem.s de la
condici0n HI condici0n HI
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
EBercicio
A r r e g l o s
O3tener la suma de los *ares e im*ares O3tener la suma de los *ares e im*ares
pares0= pares0=
impares0= impares0=
?input%<ingrese el tamaJo del vector <&= ?input%<ingrese el tamaJo del vector <&=
)or i1:? )or i1:?
)print)%<ingrese el dato para la posicion >g<!i& )print)%<ingrese el dato para la posicion >g<!i&
vec%i&input%< <&= vec%i&input%< <&=
i) mod%vec%i&!2&0 i) mod%vec%i&!2&0
paresparesFvec%i&= paresparesFvec%i&=
else else
imparesimparesFvec%i&= imparesimparesFvec%i&=
end end
end end
)print)%<An la suma de n1meros pares es: >g<! pares& )print)%<An la suma de n1meros pares es: >g<! pares&
)print)%< An la suma de n1meros impares es: >g<! impares& )print)%< An la suma de n1meros impares es: >g<! impares&
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Cunciones *ara la mani*ulaci9n de Arreglos
A r r e g l o s
Cunci9n :escri*ci9n EBem*lo
lengt$%+& Gevuelve el n1mero de elementos de
A
44+B# C 2 4E=
44lengt$%+&
ans 4
si3e%+& Gevuelve el vector )ila Bm!nE! donde
m y n representan el tamaJo m ? n
de arreglo +
44+B6 1 4 0 12=# 1C 6
8 2E
+
6 1 4 0 12
# 1C 6 8 2
44si3e%+&
ans 2 #
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Cunciones *ara la mani*ulaci9n de Arreglos
A r r e g l o s
Cunci9n :escri*ci9n EBem*lo
res$ape%+!m!n& Keordena una matri3 +! que tiene r
)ilas y s columnas! a una matri3 de m
)ilas y n columnas. El valor de r por s
debe ser igual al de m por n
44+B# 1 6=8 0 2E
+
# 1 6
8 0 2
-res$ape%+!"!2&
-
# 0
8 6
1 2
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Cunciones *ara la mani*ulaci9n de Arreglos
A r r e g l o s
Cunci9n :escri*ci9n EBem*lo
diag%v& :uando v es un vector! este
comando crea una matri3 cuadrada
con los elementos de v en diagonal
44vBD 4 2E=
44+diag%v&
+
D 0 0
0 4 0
0 0 2
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Cunciones *ara la mani*ulaci9n de Arreglos
A r r e g l o s
Cunci9n :escri*ci9n EBem*lo
diag%v& :uando + es una matri3! este
comando crea un vector a partir de
los elementos la de + diagonal
44+B1 2 "=4 # 6=D 8 CE
+
1 2 "
4 # 6
68 C
D44vecdiag%+&
vec
1
#
C
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Cunciones *ara la mani*ulaci9n de Arreglos
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Cunciones *ara la mani*ulaci9n de Arreglos
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Cunciones *ara la mani*ulaci9n de Arreglos
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Cunciones *ara la mani*ulaci9n de Arreglos
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
EBercicios
A r r e g l o s
Gado un vector! elemento a elemento! determina cu.l elemento es el mayor.
Ejemplo: Ejemplo:
L 2 C '" 8 L 2 C '" 8
Em C Em C
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
EBercicios
A r r e g l o s
Gado un vector! elemento a elemento! determina cu.l elemento es el mayor.
>Getermina el elemento mayor de un vector
clc
clear
em0= >elemento mayor
ninput%<Game el tamaJo del vector <&= >Elementos de un vector
)or M1:n
)print)%<introduce el >g elemento del vector <!M&
v%M&input%<<&=
i) v%M&4em= >em compara cada uno de los elementos del vector
emv%M&=
end
end
disp%v&
)print)%<El elemento mayor es >g An<!em&
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
EBercicios
A r r e g l o s
n, n,
vector 0 # 0 # 0 vector 0 # 0 # 0
66666666 66666666
n, n,
vector $ # % # & vector $ # % # &
66666666 66666666
n% n%
vector 0 % ? 0& vector 0 % ? 0&
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
EBercicios
A r r e g l o s
Ordenamiento de un vector *or mDtodo de la BERBEFA Ordenamiento de un vector *or mDtodo de la BERBEFA
El m6todo de la burbuja es uno de los mas simples! es tan ).cil como
comparar todos los elementos de una lista contra todos! si se cumple que uno
es mayor o menor a otro! entonces los intercambia de posici0n.
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
EBercicios
A r r e g l o s
Ordenamiento de un vector *or mDtodo de la BERBEFA Ordenamiento de un vector *or mDtodo de la BERBEFA
Por ejemplo! imaginemos que tenemos los siguientes valores:
(o que $ar2a una burbuja simple! seria comen3ar recorriendo los valores de
i3quierda a derec$a! comen3ando por el #. (o compara con el 6! con el 1! con
el 0 y con el "! si es mayor o menor %dependiendo si el orden es ascendiente
o descendiente& se intercambian de posici0n. (uego continua con el siguiente!
con el 6! y lo compara con todos los elementos de la lista! esperando ver si se
cumple o no la misma condici0n que con el primer elemento. +s2!
sucesivamente! $asta el ultimo elemento de la lista.
, & 0 # 1
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
MATRGCES
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
MATRGCES
A r r e g l o s
5na matri3 es! como el vector! una colecci0n de elementos del mismo tipo.
7in embargo! mientras el vector es unidimensional Nuna sola )ila o columna
N en la matri3 los datos se organi3an en dos o m.s dimensiones.
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
MATRGCES
A r r e g l o s
(as matrices se escriben como los vectores! pero separando las )ilas mediante
un punto y coma= as2 una matri3 "?":
//M=[1 2 3;4 5 6;7 8 9]
M
0 $ 1
% , &
< ' ?
//M' % Su transpuesta
ans
0 % <
$ , '
1 & ?
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
MATRGCES
A r r e g l o s
7on bidimensionales 7on bidimensionales
O%1!1& 1 O%1!1& 1
O%1!2&2 O%1!2&2
O%2!1&4 O%2!1&4
1 2 "
4 # 6
D 8 C
1!1 1!2 1!"
2!1
"!1
"!2 "!"
2!2 2!"
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
MATRGCES
A r r e g l o s
E?isten comandos que permiten crear de )orma sencilla matrices.
Por ejemplo:
//eye(5)
ans
0 # # # #
# 0 # # #
# # 0 # #
# # # 0 #
# # # # 0
La matriA identidad
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
MATRGCES
A r r e g l o s
E?isten comandos que permiten crear de )orma sencilla matrices.
Por ejemplo:
//zeros(3)
ans
# # #
# # #
# # #
la matriA nula
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
MATRGCES
A r r e g l o s
E?isten comandos que permiten crear de )orma sencilla matrices.
Por ejemplo:
//ones(4)
ans
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
o la matriA cuyos elementos valen todos 04
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
MATRGCES
A r r e g l o s
e!orr"#o #e un $atr"z
Para recorrer una matri3 necesitamos dos bucles anidados. Por ejemplo! si
se desea recorrer todos los elementos de la matri3 + por )ilas! se escribir.n
dos sentencias for anidadas:
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
MATRGCES
EBem*lo
ninput% ninput%89:u.ntos elementos deseas; 89:u.ntos elementos deseas; < <&= &=
)or i1:n )or i1:n
)or j1:n )or j1:n
)print)%8Hngrese el dato para la posicion >g! >gP!i!j& )print)%8Hngrese el dato para la posicion >g! >gP!i!j&
vec%i!j&input%8 8&= vec%i!j&input%8 8&=
end end
end end
disp%vec& disp%vec&
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
MATRGCES
Construcci9n de matrices con vectores
:reamos tres vectores )ila con los comandos
// v0041
// v$%4&
// v1<4?
Q creamos una matri3 con los vectores anteriores
M"v02v$2v1(
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
MATRGCES
Construcci9n de matrices con vectores
:.mbiense los vectores v1!v2!v" en vectores columna con el
operador de trasposici0n.
// v0v0!
// v$v$!
// v1v1!
El comando
44 H"v0)v$)v1(
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Buscar elemento Matrices
ninput% ninput%89:u.ntos elementos deseas; 89:u.ntos elementos deseas; < < &= &=
)or i1:n )or i1:n
)or j1:n )or j1:n
)print)%8Hngrese el dato para la posicion >g! >gP!i!j& )print)%8Hngrese el dato para la posicion >g! >gP!i!j&
vec%i!j&input%8 8&= vec%i!j&input%8 8&=
end end
end end
disp%vec& disp%vec&
?input%8Hngrese el valor que quiere buscarP&= ?input%8Hngrese el valor que quiere buscarP&=
)or i1:n )or i1:n
)or j1:n )or j1:n
i) vec%i!j&? i) vec%i!j&?
)print)%8El dato >g esta en >g! >gAnP!?!i!j& )print)%8El dato >g esta en >g! >gAnP!?!i!j&
end end
end end
end end
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Suma y resta de arreglos
A r r e g l o s
(as operaciones de suma y resta se pueden utili3ar con arreglos de
tamaJos id6nticos! es decir! aquellos que tienen el mismo n1mero de
)ilas y columnas. (a suma! as2 como la resta! de dos arreglos se lleva
al cabo sumando o restando sus elementos.
:uando a un arreglo se le suma o resta un escalar %un n1mero&! 6ste
se aJade o se sustrae de todos los elementos del arreglo
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Suma y resta de arreglos
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Suma y resta de arreglos
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Multi*licaci9n de arreglos
A r r e g l o s
(a multiplicaci0n de matrices se ejecuta solamente si el n1mero de
columnas de la matri3 + es igual al n1mero de )ilas de la matri3 -. El
resultado es una matri3 que tiene el mismo n1mero de )ilas que + y el
mismo n1mero de columnas que -. Por ejemplo! si + es una matri3 de "
? " y - es una matri3 de " ? 2. El resultado ser. de dimensi0n " ? 2
Gos vectores se pueden multiplicar s0lo si ambos tienen el mismo
n1mero de elementos. Es necesario adem.s que uno sea vector )ila y el
otro vector columna
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Multi*licaci9n de arreglos
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
Multi*licaci9n de arreglos
A r r e g l o s
S egurida d en I nternet
Oriol Roca
M a t L a b
www.upibi.net
EBercicios EBercicios
5n programa que pida al usuario el tamaJo de las )ilas y las columnas. 5n programa que pida al usuario el tamaJo de las )ilas y las columnas.
Q valide que estas sean iguales para que la matri3 sea cuadrada. Q valide que estas sean iguales para que la matri3 sea cuadrada.
+dem.s deber. leer los datos de la matri3 cuadrada y determinando la +dem.s deber. leer los datos de la matri3 cuadrada y determinando la
suma de los n1meros pares e impares contenidos en la matri3. suma de los n1meros pares e impares contenidos en la matri3.
A r r e g l o s

You might also like