accumarray

Agrupa valores por índice e soma cada grupo.

Categoria: Data Import and Analysis > Preprocessing Data

Sintaxe

A = accumarray(subs, vals)

Soma os elementos de vals que têm o mesmo valor em subs.

Descrição

accumarray é uma forma compacta de calcular totais por grupo, um histograma com pesos ou uma contagem por categoria. Pense em subs como rótulos de grupo e em vals como os dados: a saída na posição k reúne tudo o que foi rotulado com k.

Usar um escalar em vals (por exemplo 1) conta quantas vezes cada índice ocorre.

Argumentos de entrada

subs
Vetor coluna de índices inteiros positivos; cada um diz qual elemento da saída recebe o valor correspondente.
vals
Vetor coluna de valores, um por índice, ou um escalar somado uma vez por índice.

Argumentos de saída

A
Vetor coluna de comprimento max(subs); o elemento k é a soma dos valores cujo índice é k. Posições que nunca aparecem guardam 0.

Exemplo

Totais por grupo

subs = [1; 2; 1; 3];
vals = [10; 20; 30; 40];
accumarray(subs, vals)
accumarray([2; 3; 3; 3], 1)
Saída
ans = 3×1

    40
    20
    40
ans = 3×1

     0
     1
     3

Veja também

histcounts unique sum cumsum splitapply