Saltar para o conteúdo
Math Notes Documentação
Abrir o Math Notes

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

Fatie com um intervalo:

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

Atribua um elemento:

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

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

Matrizes são listas de listas, indexadas com dois subscritos:

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

Sequências#

Um intervalo start:end cria uma lista de números, com um :step opcional.

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

Um intervalo pode ser nomeado e indexado como qualquer outra lista:

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

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)
a última linha retorna 1,325
sum(1:100)
retorna 5,050
mean(1:5)
retorna 3

sum, total, average e avg também funcionam como palavras-chave isoladas nas linhas acima — veja Grupos & totais.