Listas & secuencias
Las listas guardan varios valores. Escribe una con corchetes, indexa, corta y usa las funciones de mathjs para agregar o transformar. Las listas y los rangos están limitados a 100 elementos para que una secuencia descontrolada no bloquee el editor. El límite cubre todo lo que construye una lista o matriz (ones, zeros, identity, random, concat, kron, …) y asignar más allá del final de una lista (n[500] = 1).
Listas#
Las listas están indexadas desde 1: n[1] es el primer elemento.
[1, 2, 3]n = [10, 20, 30]
n[1]Corta con un rango:
n = [10, 20, 30, 40]
n[2:4]Asigna un elemento:
n = [10, 20, 30]
n[2] = 99+ y - actúan elemento a elemento, y las listas se combinan con las funciones de mathjs. Los operadores *, / y ^ normales siguen las reglas de matrices, así que usa .*, ./ y .^ para multiplicar, dividir o elevar elemento a elemento:
[1, 2] + [3, 4][1, 2] .* [3, 4]sort([3, 1, 2])concat([1, 2], [3, 4])Las matrices son listas de listas, indexadas con dos subíndices:
m = [[1, 2], [3, 4]]
m[2, 1]Secuencias#
Un rango start:end crea una lista de números, con un :step opcional.
1:51:2:10Un rango se puede nombrar e indexar como cualquier otra lista:
n = 1:5
n[3]Iteración#
Una función recibe la lista o el rango completo con que se la llama. Un cuerpo como x * 2 o x + 1 funciona con cada elemento, pero x * x es un producto escalar (así sq(1:3) es 14). Para aplicar una función a cada elemento, usa map.
double = f(x) = x * 2
double(1:5)sq = f(x) = x * x
map(1:3, sq)Agregaciones#
sum, mean, min, max y el resto de las funciones de agregación de mathjs aceptan una lista o un rango.
expenses = [1200, 80, 45]
sum(expenses)sum(1:100)mean(1:5)sum, total, average y avg también funcionan como palabras clave sueltas en las líneas de arriba — consulta Grupos & totales.