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

Python:多条2D曲线的平均值,python,matlab,numpy,Python,Matlab,Numpy,我已经找到了许多答案,这些答案将平均一系列曲线的所有Y值,并称之为所有曲线图的平均值 但是,我想要一个2D平均值,其中新的X&Y值(不仅仅是Y值)是从一些原始X/Y图中确定的 下面是一个例子: 如您所见,紫色曲线具有蓝色曲线中不存在的x坐标,因此平均y值将不起作用(至少对于我认为最有趣的曲线部分,即右上角/右上角,不会起作用) 现在我完全意识到这可能是一个相当复杂的情况,因为找到中点的方向不断变化。(5条曲线的名称是什么?不再只是一个简单的中点。)但我假设一些杰出的数学家在很久以前就思考过这个

我已经找到了许多答案,这些答案将平均一系列曲线的所有Y值,并称之为所有曲线图的平均值

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

下面是一个例子:

如您所见,紫色曲线具有蓝色曲线中不存在的x坐标,因此平均y值将不起作用(至少对于我认为最有趣的曲线部分,即右上角/右上角,不会起作用)

现在我完全意识到这可能是一个相当复杂的情况,因为找到中点的方向不断变化。(5条曲线的名称是什么?不再只是一个简单的中点。)但我假设一些杰出的数学家在很久以前就思考过这个问题,并提出了一些漂亮的简单方法来实现这一点

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

以下是我的想法

获取蓝色曲线起点和粉色曲线起点处的点。找到连接它们的线的中点。然后向前移动蓝色曲线的1/n和粉色曲线的1/n,其中n是您希望合并曲线的精度,然后重复中点。如果你聪明的话,你可能能够在检索到很多值后对它们进行插值,但在这种情况下这可能不是最有用的


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

基本上你需要找到曲线上的对应点,然后将它们平均起来。关键在于哪些点对应。有许多可能性,使用哪一种取决于曲线所代表的内容

相应的要点可以是:

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

  • 你怎么知道蓝色曲线中的哪个点对应于粉色曲线中的哪个点?也许你应该计算对数到某个基数,拟合你的数据,然后只取y值的平均值。你所尝试的,似乎不是很科学,用可能无限长的曲线拟合实际上是一个奇妙的想法。@Noelsecura:好问题-我不知道!我知道我想要它看起来像什么。。。我能想到的最好的办法是,我想要一个与两条曲线法线/垂直的中点?但不知道这对两条以上的曲线有何意义。“正常”-->“尽可能接近正常”。这听起来像是一些沉重的演算,卷发之类的。我自己也不知道该怎么弄清楚。拉普拉斯或牛顿或其他人真的还没弄明白吗?嗯。。。是的,也许如果我做L/n,L是线的长度。(否则,他们总是选择相同的X值,只会导致前面提到的y平均值。)好的老詹姆斯·克拉克。我可以试试(类似于@MaxwellChow的答案)。这似乎并不完美——一条直线的中点“尽可能接近垂直于两条直线”似乎是正确的答案,但我不知道如何编写代码。JCM的可能已经足够好了——明天会试试。我可能应该在数学论坛上转载这篇文章。当你说“一起平均”——我猜你只是平均所有的X值&然后是所有的Y值?是的,我想对于两点的情况,这简化为标准中点。