Test of Approximately Equality

46 次查看(过去 30 天)
John Miller
John Miller 2012-6-16
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

回答(3 个)

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

请先登录,再进行评论。


Stephen Nagy
Stephen Nagy 2017-12-29
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.

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

类别

Help CenterFile Exchange 中查找有关 Function Creation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by