discretize

Agrupa dados numéricos em intervalos (bins).

Categoria: Language Fundamentals > Data Types

Sintaxe

Y = discretize(X, edges)

Retorna o número do bin de cada elemento, usando as bordas edges.

Y = discretize(X, n)

Usa n bins de mesma largura cobrindo os dados.

Y = discretize(X, edges, values)

Retorna a entrada correspondente de values em vez do número do bin.

[Y, E] = discretize(___)

Também retorna as bordas dos bins.

Y = discretize(___, 'IncludedEdge', 'right')

Torna os bins fechados à direita.

Descrição

O bin k cobre edges(k) <= x < edges(k+1), de modo que um valor igual a uma borda interna cai no bin à direita dela. Só o último bin inclui por padrão sua borda superior. Com 'IncludedEdge', 'right', os bins são (edges(k), edges(k+1)] e o primeiro bin inclui sua borda inferior.

Dados fora do intervalo das bordas dão NaN. Use accumarray ou histcounts para contar quantos caem em cada bin.

Argumentos de entrada

X
Array numérico.
edges
Vetor crescente de bordas.
values
Um valor por bin.

Argumentos de saída

Y
Números dos bins (ou values), com NaN para dados fora de todos os bins.
E
Bordas dos bins.

Exemplo

Números e rótulos de bins

x = [1 5 9 10];
discretize(x, [0 5 10])
discretize(x, [0 5 10], 'IncludedEdge', 'right')
discretize([0 1 2 3], [0 2 4], [10 20])
discretize([0.5 20], [0 2 4])
Saída
ans = 1×4

     1     2     2     2
ans = 1×4

     1     1     2     2
ans = 1×4

    10    10    20    20
ans = 1×2

     1   NaN

Observações

A opção 'categorical' e entrada datetime não estão disponíveis no MatLivre; use os números de bin com categorical(Y, 1:n, nomes).

Veja também

histcounts accumarray categorical interp1