Test of Approximately Equality

58 vues (au cours des 30 derniers jours)
John Miller
John Miller le 16 Juin 2012
Commenté : Walter Roberson le 29 Déc 2017
Hello,
I have a value b and c. b and c are approximatly equal (b~c). They have +-5% difference.
I want to test of approximately equality..like this:
if b~c (with +-5% difference)
return something...
end

Réponses (3)

Jan
Jan le 17 Juin 2012
You only have to decide if it should be 5% of the first or the second argument. Then:
if abs(b - c) < 0.05 * b
or
if abs(b - c) < 0.05 * max(b, c)
or
if abs(b - c) < 0.05 * min(b, c)
or
if abs(b - c) < 0.05 * (b + c) * 0.5
  2 commentaires
Walter Roberson
Walter Roberson le 17 Juin 2012
Some of those expressions will have difficulty if "b" is negative.
Greg Heath
Greg Heath le 18 Juin 2012
1. Try using "abs" on the RHS
2. Might also consider median(abs(b),abs(c))
Greg

Connectez-vous pour commenter.


Stephen Nagy
Stephen Nagy le 29 Déc 2017
Your desired goal isn't entirely clear, but depending on the outcome you seek, the functions "uniquetol" and some of its related functions might be helpful.
  1 commentaire
Walter Roberson
Walter Roberson le 29 Déc 2017
ismembertol() and uniquetol() did not exist in 2012 though ;-)

Connectez-vous pour commenter.


per isakson
per isakson le 16 Juin 2012
See isalmost(a,b,tol) in the File Exchange. There are more.

Catégories

En savoir plus sur Line Plots dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by