0

我有一个值为 0-9 的 m*n 矩阵。基本上,我想要做的是能够找到所有以 0 为值的单元格,并找到不为 0 的 k 个最近邻居。

我现在的代码是这样的:

  • 找到所有为零的单元格并制作一个 a*2 矩阵来保存它们的 x 和 y 位置

  • 对所有没有 0 的单元格执行相同的操作

  • 循环遍历每个给定的零坐标并测量从它到每个非零单元格的距离并将其记录在新矩阵的第一行中(第 2 行和第 3 行分别是 x 和 y 坐标)

  • 使用sortrows()以升序得到这个矩阵,然后提取前k个值(即最接近的k个坐标)

  • 重复

我希望做的是在没有内部循环的情况下快速找到 k 个最接近的非零单元格,然后对每个 0 单元格重复。任何建议将不胜感激,非常感谢。

4

1 回答 1

0

我将通过查找所有非零条目来解决这个问题,例如,正如您当前所做的那样,然后确定相应的顶点。然后,您可以使用dsearchn查找最近的 k 个点。如果您想重复执行此操作,您将从构造delaunayTriangulation对象中受益。

于 2013-05-22T10:50:04.700 回答