Saltar al contenido
Math Notes Documentación
Abrir Math Notes

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]
[1, 2, 3]
n = [10, 20, 30]
n[1]
10

Corta con un rango:

n = [10, 20, 30, 40]
n[2:4]
[20, 30, 40]

Asigna un elemento:

n = [10, 20, 30]
n[2] = 99
define el segundo elemento

+ 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]
[4, 6]
[1, 2] .* [3, 4]
[3, 8]
sort([3, 1, 2])
[1, 2, 3]
concat([1, 2], [3, 4])
[1, 2, 3, 4]

Las matrices son listas de listas, indexadas con dos subíndices:

m = [[1, 2], [3, 4]]
m[2, 1]
3

Secuencias#

Un rango start:end crea una lista de números, con un :step opcional.

1:5
[1, 2, 3, 4, 5]
1:2:10
[1, 3, 5, 7, 9]

Un rango se puede nombrar e indexar como cualquier otra lista:

n = 1:5
n[3]
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)
[2, 4, 6, 8, 10]
sq = f(x) = x * x
map(1:3, sq)
[1, 4, 9]

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)
la última línea devuelve 1,325
sum(1:100)
devuelve 5,050
mean(1:5)
devuelve 3

sum, total, average y avg también funcionan como palabras clave sueltas en las líneas de arriba — consulta Grupos & totales.