Está en la página 1de 5

OPERACIONES CON ARRAYS

Arrays simples
Los clculos examinados hasta ahora han considerado solamente nmeros escalares,
las operaciones con escalares son la base de las matemticas, pero si deseamos realizar
un mismo clculo con varios nmeros a la vez, las operaciones escalares resultaran
tediosas y engorrosas.
Por ejemplo, supongamos que deseamos evaluar la funcin exp!x" en los puntos #.$,
#.%, #.&, ..., #.', $. Podemos realizar las evaluaciones una a una o trabajar con arrays
!vectores".
Para definir un array en MATLAB escribiremos sus elementos !o coordenadas" entre
corchetes separados por espacios o comas. (e este modo, podemos resolver el problema
antrior como sigue

EDU x = [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];
EDU y = exp(x)
y =
!l"#$s 1 %&r!"'& 7
1.1052 1.2214 1.3499 1.4918 1.6487 1.8221 2.0138
!l"#$s 8 %&r!"'& 10
2.2255 2.4596 2.7183
)bservemos que MATLAB entiende la ltima orden de manera natural, calculando la
exponencial de cada elemento del array x. *sta capacidad hace que sea extremadamente
sencillo e intuitivo el manejo de arrays.
+omo los espacios actuan de separadores en un array, es importante no introducir
espacios entre medias de expresiones que forman un nico elemento !si an as, deseas
hacerlo, encierra estas expresiones entre parentesis".
Direccionamiento de ARRAYS
Podemos acceder a los elementos individuales de un array usando subindices, por
ejemplo, x!" ser el primer elemento del array x, x!" ser el segundo elemento, etc.

x(3)( y(3)
a$s =
0.3000
a$s =
1.3499
Para acceder a un bloque de elementos usaremos la notacion de dos puntos

x(3)5) *+,%e$e#!s l!s ele#e$%!s -el 3 al 5
a$s =
0.3000 0.4000 0.5000
x(3)2)7) *+,%e$e#!s l!s ele#e$%!s -el 3 al 7 sal%ea-!s -e 2 e$ 2
a$s =
0.3000 0.5000 0.7000
x(5).1)3) *+,%e$e#!s l!s ele#e$%!s -el 3 al 5 e$ !r-e$ /$0ers!
a$s =
0.5000 0.4000 0.3000
Por ltimo, podemos seleccionar los elementos que deseemos en el orden que
deseemos como sigue

y= x([3(5(1]) *+,%e$e#!s l!s ele#e$%!s 3( 5 y 1 e$ es%e !r-e$
y =
0.3000 0.5000 0.1000
-ntenta coger un elemento que no exista en el array, como el $., para ver que
sucede.
Constr#cci$n a#tom%tica de ARRAYS
/nteriormente hemos introducido un array elemento a elemento, pero existen otras dos
formas de crear arrays0
o Conocido el paso entre elementos
x=(0)0.2)2.7) *!$s%r"/#!s "$ array -e 0 a 2.7 -e 0.2 e$ 0.2
x =
!l"#$s 1 %&r!"'& 7
0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000
!l"#$s 8 %&r!"'& 14
1.4000 1.6000 1.8000 2.0000 2.2000 2.4000 2.6000
x=(2.7).0.2)0)
x =
!l"#$s 1 %&r!"'& 7
2.7000 2.5000 2.3000 2.1000 1.9000 1.7000 1.5000
!l"#$s 8 %&r!"'& 14
1.3000 1.1000 0.9000 0.7000 0.5000 0.3000 0.1000
Conocido el n&mero de elementos pero no el paso
EDU l/$space(0(p/(10) *array -e 10 ele#e$%!s espac/a-!s l/$eal#e$%e
e$%re 0 y p/
a$s =
!l"#$s 1 %&r!"'& 7
0 0.3491 0.6981 1.0472 1.3963 1.7453 2.0944
!l"#$s 8 %&r!"'& 10
2.4435 2.7925 3.1416
EDU l!'space(0(p/(10) *array -e 10 ele#e$%!s espac/a-!s
l!'ar/%#/ca#e$%e e$%re 0 y p/
a$s =
!l"#$s 1 %&r!"'& 7
1.0000 1.1356 1.2897 1.4646 1.6632 1.8888 2.1450
!l"#$s 8 %&r!"'& 10
2.4360 2.7664 3.1416
Composici$n de ARRAYS
*n ocasiones necesitamos un array que no es facil describir con las relaciones
anteriores. 1o hay una nica manera de crear estos arrays, pero gracias al
direccionamiento de arrays y a la posibilidad de componer 2stos, disponemos de
numerosas3 opciones para evitarnos el introducir los elementos individualmente.
+onstruir de forma automtica el array 4$ % & 5 . # $ 6$ 7 ' $$ $&8

EDU x=[1)5];y=[0 1 .1];1=[7)2)13];a=[x y 1] *#!-! 1
a =
1 2 3 4 5 0 1 .1 7 9 11 13
EDU x=[1)13];y=[0 1 .1];a=[x(1)5) y x(7)2)13)] *#!-! 2
a =
1 2 3 4 5 0 1 .1 7 9 11 13
EDU x=[1)5];y=[0 1 .1];a=[x y 5223x(1)4)] *#!-! 3
a =
1 2 3 4 5 0 1 .1 7 9 11 13
Operaciones escalares con ARRAYS
*n el ltimo ejemplo observamos que las operaciones escalares con arrays son
completamente intuitivas, as,, para sumar, restar, multiplicar o dividir todos los
elementos por un mismo nmero basta realizar la orden obvia.
Operaciones con ARRAYS
9enos claras son las operaciones entre arrays !pensemos por ejemplo como elevar los
elementos de un array a los de otro", aunque deber,a ser claro que las operaciones entre
arrays de distita longitud no deben ser faciles de definir.
(e este modo, partiendo de arrays de igual longitud, la operacin suma no da
problemas, pero si deseamos multiplicar o dividir arrays elemento a elemento
precisamos de las denominadas !perac/!$es c!$ p"$%!.

EDU a=[1)5];,=[4).1)1];c=[, 0];
EDU a2, *$! es%a -e4/$/-!
555 Err!r "s/$' ==6 2
7a%r/x -/#e$s/!$s #"s% a'ree.
EDU a2c
a$s =
5 5 5 5 5
EDU a3c
555 Err!r "s/$' ==6 3
8$$er #a%r/x -/#e$s/!$s #"s% a'ree.
EDU a.3c
a$s =
4 6 6 4 0
EDU a9c(a:c
a$s =
0.6667
a$s =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0.8000 0.6000 0.4000 0.2000 0
EDU a.9c(a.:c
;ar$/$') D/0/-e ,y 1er!.
a$s =
0.2500 0.6667 1.5000 4.0000 8$4
a$s =
4.0000 1.5000 0.6667 0.2500 0
)bservemos que al intentar hacer la multiplicacin sin punto nos da un error por no
concordar las dimensiones, la multiplicacin sin punto corresponde a la multiplicacin
matricial que se discutira posteriormente. )bservemos tambi2n que la divisn sin punto
esta definida, pero no realiza lo que pretendemos, es una divisin matricial que se
discutira con posterioridad.
Las potencia de arrays tambi2n tiene sus particularidades, el s,mbolo : se reserva para
las potencias de matrices, los clculos elemento a elemento se realizarn con el
s,mbolo .:

EDU a.<2 *calc"la el c"a-ra-! -e l!s ele#e$%!s -e a
a$s =
1 4 9 16 25
EDU 2.<a *calc"la 2 ele0a-! a la p!%e$c/a -e ca-a ele#e$%! -e a
a$s =
2 4 8 16 32
EDU a.<c *ele0a l!s ele#e$%!s -e a a l!s c!rresp!$-/e$%es -e c
a$s =
1 8 9 4 1
Orientaci$n de ARRAYS
;asta ahora los arrays han tenido una fila y mltiples columnas, por lo que se
denominan vectores !o matrices" fila. <ambi2n es posible definir vectores columna,
arrays con una columna y mltiples filas. Para ello se introduciran los elementos
separados con =
<odas las manipulaciones matemticas permanecen sin cambios, solamente var,a la
forma en que se visualizan los resultados. *n cambio, si deseamos usar la notacin de
dos puntos, deberemos %ra$sp!$er el vector fila resultante.

EDU a=[1;2;.1;0]
a =
1
2
.1
0
EDU ,=[1)2)8]
, =
1 3 5 7
EDU ,=,= *%ra$sp!$e#!s
, =
1
3
5
7
/dems del operador tanspuesta anterior, existe el operador .>, que proporciona la
transpuesta compleja no conjugada en contraposicin de la transpuesta conjugada que
proporciona el operador > !si los elementos del array no son complejos no hay diferencia
entre ambos operadores".
Prod#cto escalar y 'ectorial
Para calcular el producto escalar de dos arrays > y ? contamos con el operador
-!%(>(?), que equivale a calcular >=3?. *l producto vectorial de dos vectores de
dimensin & se realiza con el operador cr!ss
Lon(it#d de #n ARRAY
La longitud de un array se calcula con la orden le$'%& o con la orden s/1e

También podría gustarte