我想计算任意给定时刻两个数据集之间的差异。问题在于两个数据集的“时间戳”不同。例如考虑这些数据集
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
我怀疑这不是您想要做的,如果是这样,请使用更多信息更新您的问题,以便我们可以更好地帮助您。