【发布时间】:2014-06-10 01:30:33
【问题描述】:
我有一组已排序的值(例如 vec=[20, 54, 87, 233])。数组包含约 300 个元素。我有一个值,我需要在这个数组中搜索。搜索成功不仅是准确的值,而且是范围内的+/- 5位数字。例如,在这种情况下,像 17 或 55 这样的值也应该被视为已找到。最有效的方法是什么?我使用了像下面这样的循环,但我想它没有考虑到我的数组已经被订购。此外,在非空的情况下,我可以手动检查值的距离,因为 find 不返回位置。这不是什么大问题,因为我的“发现”只有 15%。
bRes = find(vec >= Value-5 & vec <= Value+5);
if ~isempty(bRes)
distGap = GetGapDetails(Value, vec);
return;
end
谢谢! 瓦迪姆
【问题讨论】:
-
只需使用
hist或histc -
但是它对我有什么帮助呢?固定范围(1-10,11-20 等)的 hist bin 值。我的查询值可能属于不同的 bin。
-
@user1597969 您可以使用
hist定义自定义 bin 边缘。不均匀也没关系。
标签: arrays performance matlab search find