How to set up an approximately equal conditional statement?

19 vues (au cours des 30 derniers jours)
Nicholas Henderson
Nicholas Henderson le 26 Sep 2016
Déplacé(e) : Stephen23 le 11 Juil 2025
with a tolerance of a certain value like .05, how would I check if the values for example x = 1 and y = 1.02 were approximately equal?

Réponses (4)

Star Strider
Star Strider le 26 Sep 2016
I would do something like this:
x = 1;
y = 1.02;
tol = 0.05;
app_eq = @(x,y,tol) abs(x-y)<tol;
Out = app_eq(x,y,tol)
Out =
1
The result ‘Out’ is a logical value of 1 or true.
  2 commentaires
Prudhvi Raj Sunkara
Prudhvi Raj Sunkara le 19 Avr 2020
thanx
Star Strider
Star Strider le 19 Avr 2020
My pleasure.

Connectez-vous pour commenter.


John D'Errico
John D'Errico le 26 Sep 2016
What would this tell you?
abs(x - y)

Walter Roberson
Walter Roberson le 26 Sep 2016
You may wish to look at ismembertol()

Jennifer Rebbin
Jennifer Rebbin le 10 Juil 2025
Déplacé(e) : Stephen23 le 11 Juil 2025
Starting in R2024b, you can use the isapprox function to determine if two input arrays are approximately equal. Specify the maximum allowed difference between elements using the AbsoluteTolerance name-value argument.
isapprox(1,1.02,AbsoluteTolerance=0.05)
ans = logical
1
isapprox(1,1.02,AbsoluteTolerance=0.01)
ans = logical
0

Catégories

En savoir plus sur Logical 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