Introducción a los arrays (Manual de Maxima 5.45.0)

Siguiente: Funciones y variables para los arrays, Anterior: Arrays, Subir: Arrays [Índice general][Índice]

#### 5.5.1 Introducción a los arrays

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]