我目前正在编写一个脚本,该脚本应该从我的图表中删除冗余数据点。我的数据包括来自相邻数据集的重叠,我只想要通常更高的数据。 (想象一下两个高斯人的x偏移略有重叠。我只对重叠区域中较高的值感兴趣,所以当我合并数据以便制作时,我的最终图形并不会产生所有噪声单一光谱。)
以下是我的问题:
1)两个数据集之间的x值不相同,所以我不能在x处说"取最大值"。他们在一起但并不平等。
2)x值之间的距离不等。
3)数据有噪声,因此数据集可以有多个点相交。虽然高斯A在交点之后通常比高斯B高,但噪声意味着高斯B可能仍然具有更高的一些值。意思是我不能说"总是在这个x区域中取最高值",因为那时我会疯狂地组合两个数据集的噪音。
4)我有这种类型的n个重叠,所以我需要一个有效的算法,所有我能想到的就是O(n ^ 3),这就像&#34;对于每个重叠,存储数据集合成两个数组,每个数据点组合(x0,y0)和(x1,y1)循环直到你找到abs(x1-x0)和abs(y1-y0)&#34; <的最低组合。 / p>
由于我不是程序员,我完全迷失了。我也无法在任何地方找到这个问题的算法 - 大多数算法都假设我比较的数组中的条目是相等的整数,但是我使用几乎相等的浮点数。 / p>
我正在使用IDL,但我也很感激一般的算法或者至少我可以尝试的提示。谢谢!
答案 0 :(得分:1)
你能做到这一点的一种方法是,如果你让高斯人适合你的数据,然后取最大值假设每个数据点等于那个点的高斯。
这可以按如下方式完成: