-1

假设我有两个这样的 x 和 y 点列表。

Dataset 1
[[1.0,2.0],
 [2.0,2.4],
 [3.0,2.8],
 [4.0,3.5],
 [5.0,4.0]]

Dataset 2
[[2.4,1.0],
 [2.8,1.0],
 [3.1,1.0],
 [4.0,1.0]]

我想把它们加在一起,所以结果看起来像这样

[[1.0,2.0],
 [2.0,2.4],
 [2.4,2.6],
 [2.4,3.6],
 [2.8,3.7],
 [3.0,3.8],
 [3.1,3.9],
 [4.0,4.5],
 [4.0,3.5],
 [5.0,4.0]]

因此,通过结合下方的红色和蓝色图表,结果应该是灰线。是否有任何已知的算法可用于完成此任务?

在此处输入图像描述

4

2 回答 2

0

你知道你正在处理线性关系吗?或者您的数据可以代表任何任意关系。为简单起见,假设您正在处理线性数据。

  1. 获取您的第一个数据集,并将其拟合成一条线。
  2. 编写一个 Java 函数,以返回您在步骤 1 中导出其方程的行上的任何 x 的 y 值。
  3. Set 2 看起来像一个典型的阶跃函数或脉冲函数(这些是非分析函数,即通常的约定,例如应用于微积分的约定是无效的)。您可以像这样为此编写一个 Java 函数

    静态双 stepFunction(double x) { return (x <= 2.2 || x > 4.0) ?0.0 : 1.0 }

  4. 你的情节只是两个函数的总和,即

    y2(x) = y1(x) + stepFunction(x)

于 2013-08-26T22:56:53.900 回答
0

如果它们不共享相同的坐标,则不能添加两组数字对...

尝试将你们两个点集解释为插值,并为可以添加两个数据集的函数重新定义一个公共域,例如[1.0:0.1:5.0]

于 2013-08-26T22:57:06.617 回答