我目前正在编写一个脚本,该脚本应该从我的图表中删除冗余数据点。我的数据包括来自相邻数据集的重叠,我只想要通常更高的数据。(想象两个高斯的 x 偏移量略有重叠。我只对重叠区域中的较高值感兴趣,因此当我组合数据以制作单个光谱时,我的最终图表不会变得很嘈杂。 )
这是我的问题:
1)两个数据集之间的x值不一样,所以我不能只说“在x处,取最大y值”。它们靠得很近,但并不相等。
2) x 值之间的距离不相等。
3)数据有噪声,因此数据集相交处可能有多个点。虽然高斯 A 在相交后通常高于高斯 B,但噪声意味着高斯 B 可能仍有一些更高的值。这意味着我不能只说“总是在这个 x 区域中取最高值”,因为那样我会疯狂地结合两个数据集的噪声。
4)我有n个这种类型的重叠,所以我需要一个有效的算法,我能想出的只是O(n ^ 3)的某个地方,这就像“对于每个重叠,将数据集存储到两个数组中并且对于数据点 (x0,y0) 和 (x1,y1) 的每个组合循环,直到找到 abs(x1-x0) AND abs(y1-y0) 的最低组合”
因为我不是程序员,所以我完全迷路了。我也无法在任何地方找到解决此问题的算法 - 大多数算法假设我正在比较的数组中的条目是相等的整数,但我正在使用几乎相等的浮点数。
我正在使用 IDL,但我也很感激一个通用算法或至少一个我可以尝试的提示。谢谢!