Siguiente: Funciones y variables para los arrays, Anterior: Arrays, Subir: Arrays [Índice general][Índice]
Los arrays más flexibles son aquellos que no necesitan ser declarados, llamados
también, en inglés, hashed-arrays, y se basan en que a una variable
subindicada se le puede asignar un valor cualquiera. Los índices
no necesitan ser números enteros, admitiéndose símbolos o
expresiones. Los arrays no declarados crecen dinámicamente según se le van
asignando valores a sus elementos. En el siguiente ejemplo se muestra cómo
se va construyendo un array no declarado a
. Para obtener un listado de
los elementos de un array se utiliza la función listarray
.
(%i1) a[1,2]: 99; (%o1) 99 (%i2) a[x,y]: x^y; y (%o2) x (%i3) listarray(a); y (%o3) [99, x ]
Otro tipo de arrays son los declarados, los cuales admiten hasta cinco dimensiones
y pueden guardar valores de un tipo concreto, como fixnum
para enteros o
flonum
para reales de coma flotante. Maxima distingue dos tipos de arrays
declarados; los primeros se pueden definir declarando un símbolo
como array, haciendo uso de la función array
; los segundos son arrays
de Lisp, en los que un símbolo se declara como tal con la
función make_array
.
En el primer ejemplo se declara el símbolo a
como array,
mientras que en el segundo se declara b
como array de Lisp.
(%i1) array(a, fixnum, 2, 2); (%o1) a (%i2) b: make_array(fixnum, 2, 2); (%o2) {Array: #2A((0 0) (0 0))}
Cuando a la variable opcional use_fast_arrays
se le asigna el valor
true
, la función array
también generará un array de Lisp.
Tal es lo que sucede en el ejemplo siguiente, en el que el símbolo
c
queda declarado como array de Lisp. Téngase en cuenta que por este
método no se puede asignar el tipo de array, ya que al introducirle el tipo
fixnum
se genera un mensaje de error.
(%i3) use_fast_arrays: true; (%o3) true (%i4) array(c, 2, 2); (%o4) #2A((NIL NIL NIL) (NIL NIL NIL) (NIL NIL NIL)) (%i5) c; (%o5) #2A((NIL NIL NIL) (NIL NIL NIL) (NIL NIL NIL)) (%i6) array(c, fixnum, 2, 2); make_array: dimensions must be integers; found [fixnum + 1, 3, 3] -- an error. To debug this try: debugmode(true);
Maxima también dispone de funciones array, que pueden almacenar valores de funciones, y de funciones subindicadas.
Se puede encontrar más información en las descripciones de las funciones. Los siguientes símbolos y funciones de Maxima permiten trabajar con arrays:
array arrayapply arrayinfo arraymake arrays fillarray listarray make_array rearray remarray subvar subvarp use_fast_arrays
Siguiente: Funciones y variables para los arrays, Anterior: Arrays, Subir: Arrays [Índice general][Índice]