Test of Approximately Equality

46 Ansichten (letzte 30 Tage)
John Miller
John Miller am 16 Jun. 2012
Kommentiert: Walter Roberson am 29 Dez. 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

Antworten (3)

Jan
Jan am 17 Jun. 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 Kommentare
Walter Roberson
Walter Roberson am 17 Jun. 2012
Some of those expressions will have difficulty if "b" is negative.
Greg Heath
Greg Heath am 18 Jun. 2012
1. Try using "abs" on the RHS
2. Might also consider median(abs(b),abs(c))
Greg

Melden Sie sich an, um zu kommentieren.


Stephen Nagy
Stephen Nagy am 29 Dez. 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 Kommentar
Walter Roberson
Walter Roberson am 29 Dez. 2017
ismembertol() and uniquetol() did not exist in 2012 though ;-)

Melden Sie sich an, um zu kommentieren.


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

Kategorien

Mehr zu Function Creation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by