Python:多条2D曲线的平均值

时间:2016-01-28 06:01:18

标签: python matlab numpy

我找到了许多答案,它们会平均一系列曲线的所有 Y值,并称之为所有曲线的平均值。

然而,我想要一个2D平均值,其中一个新的X& Y值(不仅仅是Y值)是根据一些原始X / Y图确定的。

以下是一个例子:

Illustration of the 2D average of two curves

正如您所看到的,紫色曲线具有蓝色曲线中不存在的x-coords,因此平均y值将不起作用(至少不是我觉得最有趣的曲线部分 - 结束/右上角。

现在我完全意识到这可能是一个相当复杂的情况,因为找到中点的方向会不断变化。 (它要求5条曲线是什么?不仅仅是一个简单的中点。)但是我假设一些出色的数学家在很长一段时间里都在思考这个问题,并提出了一些非常简单的方法来做到这一点...

我正在寻找Python的答案,但是Matlab或类似的答案也会很棒,因为我可以将其转录为Python / Numpy等。 此外,我的实际情况确实涉及“平均”5-10个类似形状的曲线。

2 个答案:

答案 0 :(得分:0)

这就是我的想法。

获取蓝色曲线开头的点和粉红色曲线的开头。找到连接它们的线的中点。然后向前移动蓝色曲线的1 / n和粉红色曲线的1 / n,其中n是您想要合并曲线的精确程度,并重复中点。如果你很聪明,一旦你检索了很多值,你就可以插入得到的值,但在这种情况下这可能不是最有用的。

我不知道你是如何存储曲线的,但如果你能得到等式或类似的东西,那可能有所帮助。

答案 1 :(得分:0)

基本上你需要在曲线上找到相应的点,然后将它们平均在一起。诀窍是哪些点对应。有许多可能性,使用哪一个取决于曲线代表什么。

相应的观点可能是:

  1. 垂直对齐点
  2. 水平对齐点
  3. 沿着每条曲线的路径指向相等的距离。
  4. 沿着每条曲线的路径指出相等的百分比(麦克斯韦的想法)
  5. 蓝线上的一个点,以及该点与其他曲线的蓝线垂线的交点。
  6. 从图形左上角开始以10,20,30,......度角向右下方的线与曲线相交的点。