【发布时间】:2013-04-16 20:57:23
【问题描述】:
假设我在 matlab 中有 2 个矩阵:
A = [1 4 6 9 11 13 15 18 21]
B = [2 10 19]
有没有我可以使用的函数,以便对于 B 中的每个元素,我能够找到与 A 中该元素最接近的值的索引。例如,在上面的示例中:2,10 和 19 是数值上最接近 A 中的 1,9 和 18,并且 1、9 和 18 的索引是 1,4 和 8,所以函数应该返回 [1 4 8]。
我知道我可以使用循环来执行此操作,但 matlab 不太喜欢循环,而且我的矩阵太大,迭代所有值的时间会非常昂贵。
【问题讨论】:
-
目前,我通过对两个矩阵进行排序然后以某种方式查找值来降低时间成本,以便保存 A 中最后一个最接近找到的值的索引,然后搜索最接近的值B 中的下一个元素从这个保存的值开始,而不是 1。每次。
-
感谢指向帖子的指针。这很有用:)
-
@vsx06
knnsearch是显而易见的答案。 -
@Parag:
knnsearch从哪个 MATLAB 版本开始可用? -
@fpe 如何检查?我使用 R2011b 和它。
标签: matlab function find closest