如何找到接近给定值的值?

nsy*_*nsy 22 matlab closest

我有 data = [1 1.2 1.3 1.5 1.8]

我想在此点的数据之前和之后找到最接近的值, b = 1.23

我该怎么做呢?

Dou*_*ubt 23

这是另一种方法.矢量data不需要排序,b可以是正数或负数.

[~,I] = min(abs(data-b));
c = data(I);
Run Code Online (Sandbox Code Playgroud)


bde*_*caf 11

如果数据已排序,您可以使用find:

i_lower  = find(data <= b,1,'last');
i_higher = find(data >= b,1,'first');

lower_than_b  = data(i_lower)
higher_than_b = data(i_higher)
Run Code Online (Sandbox Code Playgroud)


Oli*_*rth 5

怎么min(abs(data - b))