uniquetol

Valores únicos de um array de ponto flutuante dentro de uma tolerância.

Categoria: Language Fundamentals > Operators and Elementary Operations

Sintaxe

C = uniquetol(A)

Retorna os valores únicos ordenados, tratando como iguais valores dentro da tolerância padrão.

C = uniquetol(A, tol)

Usa a tolerância tol.

[C, ia, ic] = uniquetol(___)

Retorna também índices tais que C = A(ia) e A é aproximadamente C(ic).

Descrição

unique considera números diferentes se diferirem até no último bit, então resultados de cálculos de ponto flutuante como 0.3 - 0.2 e 0.1 ficam separados. uniquetol agrupa valores que diferem em no máximo tol * max(abs(A)) e mantém um de cada grupo.

A saída é sempre ordenada e vem como coluna ou linha, conforme a forma de A.

Argumentos de entrada

A
Array numérico.
tol
Tolerância relativa, escalada por max(abs(A(:))). Padrão 1e-12 para double e 1e-6 para single.

Argumentos de saída

C
Vetor ordenado de representantes, um por grupo de valores quase iguais.
ia, ic
Vetores de índices que relacionam A e C.

Exemplo

a = [0.1 0.3-0.2 0.7 0.7000001];
numel(unique(a))
uniquetol(a, 1e-5)
Saída
ans = 4
ans = 1×2

    0.1000    0.7000

Veja também

unique ismembertol sort abs