splitapply
Aplica uma função a cada grupo de dados e reúne os resultados.
Categoria: Language Fundamentals > Data Types
Sintaxe
Y = splitapply(func, X, G)
Divide X pelos números de grupo em G, chama func em cada grupo e empilha os resultados.
[Y1, Y2, ...] = splitapply(func, X, G)
Para uma função que retorna várias saídas.
Descrição
splitapply é a segunda metade de um passo dividir-aplicar-combinar: findgroups atribui um inteiro a cada chave distinta, e splitapply executa a função nos dados de cada grupo. Espera-se que a função retorne o mesmo tamanho para todos os grupos, em geral um escalar como sum, mean ou numel.
Argumentos de entrada
func- Function handle aplicado a cada grupo.
X- Array de dados, ou vários arrays
X1, X2, ...sefuncreceber várias entradas. Os grupos são tomados ao longo das linhas. G- Inteiros positivos que dão o grupo de cada linha, em geral vindos de
findgroups.
Argumentos de saída
Y- Uma linha por grupo, na ordem dos grupos.
Exemplo
[g, id] = findgroups(["b";"a";"b"]);
id
splitapply(@sum, [10;20;30], g)
[m, i] = splitapply(@max, [3;9;4;1], [1;1;2;2])
Saída
id = 2×1 string array
"a"
"b"
ans = 2×1
20
40
m = 2×1
9
4
i = 2×1
2
1