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 件のコメント

rbme17
rbme17 2017 年 8 月 14 日
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
Aveek Podder
Aveek Podder 2017 年 8 月 17 日
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 2017 年 8 月 17 日
編集済み: John BG 2017 年 8 月 17 日
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
rbme17
rbme17 2017 年 8 月 18 日
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.

サインインしてコメントする。

回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

質問済み:

2017 年 8 月 14 日

コメント済み:

2017 年 8 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by