我目前正在编写一个脚本,用于从我的图表中删除冗余的数据点。我的数据包括来自相邻数据集的重叠,我只想要通常更高的数据。(想象两个x偏移量略有重叠的高斯分布。我只对重叠区域中的较高值感兴趣,这样当我组合数据以生成单个光谱时,我的最终图形不会变得非常嘈杂。)
以下是我的问题:
1)两个数据集的x值不一样,所以我不能简单地说"at x,take max y value“。它们很接近,但并不相等。
2) x值之间的距离不相等。
3)数据是有噪声的,因此可能存在多个数据集相交的点。虽然高斯A在相交后通常比高斯B更高,但噪声意味着高斯B可能仍然有一些更高的值。这意味着我不能简单地说“总是取这个x区域中的最高值”,因为这样我就会疯狂地组合两个数据集的噪声。
4)我有n个这种类型的重叠,所以我需要一个有效的算法,我能想到的就是O(n^3)的某个地方,这将类似于“对于每个重叠,将数据集存储到两个数组中,并对数据点(x0,y0)和(x1,y1)的每个组合进行循环,直到找到abs(x1-x0)和abs(y1-y0)的最低组合。”
因为我不是程序员,所以我完全迷路了。我在任何地方也找不到解决这个问题的算法-大多数算法都假设我正在比较的数组中的条目是相等的整数,但我使用的是几乎相等的浮点数。
我正在使用IDL,但我也很感激有一个通用的算法,或者至少是一个我可以尝试的技巧。谢谢!
发布于 2016-04-04 23:31:13
这可以按如下方式完成:
https://stackoverflow.com/questions/36328327
复制相似问题