在我的sql server 数据库中,我有一组数据值“A”。它有大约 6000 奇数行和 3 列作为 x 轴、y 轴和 z 轴上的点。
我必须推断出只有 100 个点的子集“B”,它最类似于集合“A”的数据,最接近地删除了异常值(例如,如果 3d 空间中某处只有 2 个点,它们应该被忽略但是如果某处有一组点,则应根据适用情况用一两个点表示)。
所以请大家帮我创建一个程序或函数。 我也在网上和我自己上进行了尝试,但没有找到我可以实现的正确解决方案。
最佳答案
您需要一种折线简化算法。也许最受欢迎的是 Douglas-Peucker algorithm
The purpose of the algorithm is, given a curve composed of line segments, to find a similar curve with fewer points.
目前还不清楚 - 如何处理异常值 - 可能你需要一些平滑或其他过滤(因为 D_P 算法试图保留它们)
关于sql-server - 查找一组 3d 点的相关子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42084548/