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ão1e-12para double e1e-6para single.
Argumentos de saída
C- Vetor ordenado de representantes, um por grupo de valores quase iguais.
ia, ic- Vetores de índices que relacionam
AeC.
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