Siguiente: Gráficas sencillas Superior: Comenzando con PDL: un Anterior: Creando PDLs |
PDL acepta varios operadores y funciones conocidas. Los siguientes símbolos suman, restan multiplican y dividen varios ``piddles''.
+ - * /
Con estos operadores, al igual que el resto en este artículo, PDL actúa elemento a elemento. Por ejemplo, si multiplicamos dos PDLs del mismo tamaño y dimensiones obtenemos un PDL equivalente con cada uno de los elementos siendo el producto de cada uno de los elementos de los otros dos.
perldl> $a=pdl([1,2]) perldl> $b=pdl([3,4]) perldl> p $a*$b [3 8]
Podemos por ejemplo calcular los puntos de una parábola.
perldl> $x=zeroes(5)->xlinvals(-2,2); perldl> $y=$x**2; perldl> p $x [-2 -1 0 1 2] perldl> p $y [4 1 0 1 4]
El operador de exponenciación
es igual que el de FORTRAN **
.
Podemos también realizar una operación con PDLs o números de diferentes dimensiones. Por ejemplo,
perldl> $a=pdl[0,1,2,3] perldl> p $a [0 1 2 3] perldl> $b=2*$a perldl> p $b [0 2 4 6]
En este caso estamos multiplicando
un ``piddle'' de dimensión uno y longitud cuatro
por un número. PDL lo que hace es ``expandir''
el número hasta abarcar el número de dimensiones
del PDL de mayor tamaño. Y devuelve un ``piddle''
de igual tamaño que el original pero multiplicando
elemento a elemento su contenido original por el número.
Aquí radica la potencia de PDL, ya que no sólo
tiene reglas ``lógicas'' para vectores y matrices,
sino para todo tipo de matrices n-dimensionales.
Para más información en este
tema leáse la página de manual
con el siguiente comando
help Indexing
.
Los operadores relaciones y lógicos son muy similares de los de C
> < >= <= == != !
Nótese que estos operadores actúan elemento a elemento. Es decir, si un ``piddle'' se compara con un número, el resultado es un ``piddle'' del mismo tamaño que el original.
perldl> $a=pdl([0,1,2,3,4]) perldl> p $a > 2 [0 0 0 1 1]
Las funciones matemáticas también actúan elemento a elemento, algunas de ellas son las siguientes
sin log abs atan2 sqrt cos exp