ismembertol
Testa pertinência a um conjunto de valores de ponto flutuante dentro de uma tolerância.
Categoria: Language Fundamentals > Operators and Elementary Operations
Sintaxe
tf = ismembertol(a, S)
Retorna true para cada elemento de a que está dentro da tolerância padrão de algum elemento de S.
tf = ismembertol(a, S, tol)
Usa a tolerância tol.
[tf, loc] = ismembertol(___)
Retorna também o índice em S de um elemento correspondente.
Descrição
Dois números são considerados membros um do outro quando abs(u - v) <= tol * max(abs([a(:); S(:)])). O ismember comum exige igualdade exata, o que falha para valores como 0.1 + 0.2 e 0.3, que diferem nos últimos bits.
A tolerância é relativa aos dados, então se ajusta bem tanto para números minúsculos quanto enormes.
Argumentos de entrada
a- Valores a procurar.
S- Conjunto de valores onde procurar.
tol- Tolerância relativa, escalada pelo maior valor absoluto em
aeS. Os padrões são1e-6para single e1e-12para double.
Argumentos de saída
tf- Array lógico com o tamanho de
a. loc- Índice em
Spara cada correspondência,0onde não há.
Exemplo
ismember(0.1 + 0.2, 0.3)
ismembertol(0.1 + 0.2, 0.3)
[tf, loc] = ismembertol([0.1 + 0.2, 5], [0.3 1 5])
Saída
ans = logical
0
ans = logical
1
tf = 1×2 logical array
1 1
loc = 1×2
1 3