2017-02-22 58 views
0

下图是一些(x,y)坐标的图。可以看出,数据大致分为彼此接近的x坐标的一些“组”。还可以看出,连续组之间的距离是变化的。将彼此靠近的坐标分组

我想获得每个“组”的x坐标的索引,然后我可以使用它来“选择”关联的y坐标。

到目前为止,我已经试过:

[uniqueValues, ~, uniqueIdx] = uniquetol(x_coordinates,tol); 
indices_group1 = find(uniqueIdx == 1); 
x_group1 = x_coordinates(indicesGroup1); 
y_group1 = y_coordinates(indicesGroup1); 

这在一定程度我想要做什么;但由于各组之间的距离不同,所以效果不佳。 关于如何解决这个问题的任何想法?

enter image description here

+0

我不明白如何变化的距离有这个代码的效果。你能解释一下吗? –

+0

@AnderBiguri也许OP找不到一个效果很好的“tol”...? –

+0

@ Dev-iL的权利,这是有道理的。我不知道如何自动选择它,但我的猜测是'tol = 0.005'可以完成这项工作。 –

回答

0

一种选择是使用聚类算法如DBScan。这应该将每个点的“行”分类为单个集群,然后您可以获取每个集群的y坐标。

相关问题