Listas & sequências
Listas guardam vários valores. Escreva uma com colchetes, indexe, fatie e use as funções do mathjs para agregar ou transformar. Listas e intervalos são limitados a 100 itens para que uma sequência descontrolada não trave o editor. O limite cobre tudo que constrói uma lista ou matriz (ones, zeros, identity, random, concat, kron, …) e atribuir além do fim de uma lista (n[500] = 1).
Listas#
As listas são indexadas a partir de 1: n[1] é o primeiro elemento.
[1, 2, 3]n = [10, 20, 30]
n[1]Fatie com um intervalo:
n = [10, 20, 30, 40]
n[2:4]Atribua um elemento:
n = [10, 20, 30]
n[2] = 99+ e - agem elemento a elemento, e as listas se combinam com as funções do mathjs. Os operadores *, / e ^ comuns seguem as regras de matrizes, então use .*, ./ e .^ para multiplicar, dividir ou elevar elemento a elemento:
[1, 2] + [3, 4][1, 2] .* [3, 4]sort([3, 1, 2])concat([1, 2], [3, 4])Matrizes são listas de listas, indexadas com dois subscritos:
m = [[1, 2], [3, 4]]
m[2, 1]Sequências#
Um intervalo start:end cria uma lista de números, com um :step opcional.
1:51:2:10Um intervalo pode ser nomeado e indexado como qualquer outra lista:
n = 1:5
n[3]Iteração#
Uma função recebe a lista ou o intervalo inteiro com que é chamada. Um corpo como x * 2 ou x + 1 funciona com cada elemento, mas x * x é um produto escalar (então sq(1:3) é 14). Para aplicar uma função a cada elemento, use map.
double = f(x) = x * 2
double(1:5)sq = f(x) = x * x
map(1:3, sq)Agregações#
sum, mean, min, max e o resto das funções de agregação do mathjs aceitam uma lista ou um intervalo.
expenses = [1200, 80, 45]
sum(expenses)sum(1:100)mean(1:5)sum, total, average e avg também funcionam como palavras-chave isoladas nas linhas acima — veja Grupos & totais.