我正在尝试为数组中的项找到值或最相似的值。例如,如果Item为3且数组为[1,2,5,6,9],那么最相似的值为2,因为它具有最小的差异。我已经做到了,但我觉得有一种更有效的方法可以做到这一点,因为有时它会给出错误的价值观......任何想法?
我的代码:
value = 3;
array = [1 2 5 6 9];
cur = array - value;
theneededvalue = min(cur); %error as it gets the -ve value and I need the smallest positive value
答案 0 :(得分:2)
你很亲密。要避免使用负值,可以使用abs
获取绝对值。然后,您可以使用min的第二个输出获得最接近的值:
value=3;
array=[1,2,5,6,9];
cur = abs(array-value);
% df is the minimum distance, ind is the index of the minimum distance
[df,ind] = min(cur);
theneededvalue = array(ind);
答案 1 :(得分:1)