计算两个非线性数据集之间的差异

计算两个非线性数据集之间的差异

我想计算任意给定时刻两个数据集之间的差异。问题在于两个数据集的“时间戳”不同。例如考虑这些数据集

time-1   state-1    time-2    state-2
6.164012 1          6.164015  1
6.290051 2          6.290055  2
6.454675 3          6.454678  3
7.006175 4          7.006178  4
7.080418 5          7.016555  5
7.193570 6          7.016595  4
7.351850 7          7.016595  3
7.465638 8          7.016595  2
7.492480 9          7.080421  3
7.524426 10         7.193572  4
8.006629 11         7.203975  5

甚至每 0.000001 秒计算一次状态 1 和状态 2 之间的差异就足够了(暴力)。有人知道如何解决这个问题吗?

编辑:为了澄清我的问题:第一个数据集包含时间戳(time-1)和相应的值(state-1);第二个数据集还包含时间戳(time-2)和相应的值(state-2)。我想及时比较每个时刻的“状态”变量,以找到两者之间的最大差异。然而,由于两个数据集之间的时间戳不同步,我不能简单地将第 1 行与第 1 行等进行比较。数据集可以按如下方式读取:数据集 1 在时间 6.164012 秒时有 1 个状态,在 6.290051 秒后有 2 个状态。 。数据集 2 在 6.164015 秒后有 1 个状态,在 6.290055 秒后有 2 个状态。

编辑 2:你可以将两个数据集视为阶跃函数(x 轴是时间,y 轴是状态变量)。然后你最终会得到如下结果:

^
|    +---------+
|    |         | +---+
| +--+   +---+ | |   |
| |      |   | +-+   + ... f1
|--------+   +-------- ... f2
+------------------------------->

我想知道 f1 和 f2 (y_1 - y_2) 之间的差异在哪个时间(x 值)达到峰值。在这种情况下,我没有“函数”,但属于同一实验的两个数据集正在使用不同的参数运行。

答案1

你的问题不是很清楚。如果您想要做的是比较一个文件的第二个和第四个字段,请执行以下操作:

awk '{print $2-$4}' file.txt

我怀疑这不是您想要做的,如果是这样,请使用更多信息更新您的问题,以便我们可以更好地帮助您。

相关内容