Compare two inputs based on closeness in value to a variable?

Hi everyone,
I'm trying to write a statement that compares two inputs to a number. Depending on which of them is closer to that number, a statement will use the closer variable that in a calculation.
So for example, I have two inputs from a GUI.
x = 44, and y = 52
Whichever one is closer to 51 will be used in an equation (i.e. y)
Does anyone know how I can accomplish this?
Thank you!

4 commentaires

I'm not sure why I didn't think of this earlier, but if anyone is interested, here's what I did.
if abs(x - 51) > abs(y - 51)
z = y;
elseif abs(x - 51) < abs(y - 51)
z = x;
end
z is then used later, so this ended up working out fine
If both x and y are equidistant from 51 then some error may rise:
if true
if abs(x - 51) > abs(y - 51)
z = y;
else
z = x;
end
end
John BG
John BG le 17 Août 2017
Modifié(e) : John BG le 17 Août 2017
What about solving the equal distance ambiguity with for instance
if abs(x - 51) > abs(y - 51)
z = y;
else
z=x
end
if abs(x - 51) == abs(y - 51)
z = [x y];
end
Thanks for your feedback! You're absolutely right, but this is actually being used in a GUI where I prevent x and y from being equal to each other with error messages and a break statement.

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Programming dans Centre d'aide et File Exchange

Question posée :

le 14 Août 2017

Commenté :

le 18 Août 2017

Community Treasure Hunt

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

Start Hunting!

Translated by