22

私は持っているdata = [1 1.2 1.3 1.5 1.8]

この時点のデータから前後で最も近い値を探したいのですが、b = 1.23

どうすればいいですか?

4

6 に答える 6

23

ここに別の方法があります。ベクトルdataはソートする必要はなく、b正または負にすることができます。

[~,I] = min(abs(data-b));
c = data(I);
于 2013-06-06T15:01:46.473 に答える
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)
于 2011-11-11T09:55:41.570 に答える
5

どうmin(abs(data - b))ですか?

于 2011-11-11T02:39:58.473 に答える
0
data = [1 1.2 1.3 1.5 1.8]

b = 1.23

find(abs(data-b)==min(abs(data-b)))
于 2014-11-27T14:53:38.540 に答える