在C中过滤XY数组

时间:2013-09-14 15:24:02

标签: c filtering

请参阅两个屏幕截图,数据存储为2D C数组中的双精度数据。

第一个是我的原始数据,第二个是我想要的。所以我需要删除带有红色圆圈的点。我的第一个尝试是将每个点的y值与前一个和下一个点的y值进行比较。如果它低于两者,则将其删除。

然而,这也将删除绿色圆圈的点,不应删除。

有关算法的任何建议只能删除带有红色圆圈的点吗?我不能使用阈值,因为还会有像绿色圆圈更接近x轴的点。

Before

After

2 个答案:

答案 0 :(得分:2)

怎么样:通过寻找绿点(最高点),然后再次通过并删除低于该值的所有倾角?

答案 1 :(得分:0)

我找到了另一种方法。

不是在生成之后过滤所有值,而是在生成点期间过滤。因此,例如,我计算它所属的曲线的特定x值的y值,还计算其两条相邻曲线的y值。然后我检查点是否位于相邻曲线之一或之上,并根据它将它们添加到我的曲线中。

仍然稍微调整一下,但它似乎比我最初想的更容易,更快。