假设我有一个点(x,y)
列表,它们对应于下图中的黑点,这是一个矩形网格。这里有四个弯曲的“行”和八个“列”。
我如何将每一行分组在一起?换句话说,在下图中,我如何将第一行以蓝色圈出的点组合在一起(让我们称之为第1组),并将第二行以蓝色圈出的点组合在一起(让我们称之为第2组),等等。
我最初的直觉说从左上角开始,并使用距离度量来搜索最近的点,该距离度量将惩罚两点之间的y距离。但是,我遇到的问题是当我到达第一行的最后一点时,我怎么知道该行是“完整的”,我不应该将第二行的最右边的点添加到我的组中分数?
对这类问题有更好的解决方法吗?
答案 0 :(得分:1)
这在很大程度上取决于积分的分布方式。
对于这种特殊情况,一个简单的解决方案是:
按x分类点
将分割点列表分成4个连续点的组(这是您的列)
按y
对列进行排序选择每列的第一个元素并放入第1行
选择每列的第二个元素并将其放入第2行
...