如何找到最接近某个数字的数组元素?

How can I locate the element of an array that is nearest to some number?

我有一个数组A,例如

A = [-79.0732  -82.1919  -85.0432  -87.0406  -90.0102  -92.6745]

和一些数字 x(例如 -90),我想找到数组中最接近(绝对值)x 的元素的索引。

在我的例子中,A最接近x的元素是-90.0102,即数组A的第5个元素。通常,我如何计算最接近 x 的元素的索引?

我认为应该这样做:

[~, i] = min(abs(A - (-90)));

这会将 A 中的每个元素与您提供的数字相差。 min 然后会找到最小值,return 它的索引。

如果x是感兴趣的值,A是数组,运行

[~, inearest] = min(abs(A - x));

然后inearest将包含数组A中最接近x(绝对值)的元素的索引。