在特定索引处插入数据

interpolate data at specific index

我正在使用旋转编码器传感器 仅在旋转时返回数据。因此,当我开始测量时,它会给我一列这样的时间间隔(示例):

0 1个 2个 20 21 22

这意味着传感器在前两秒旋转,但在前两秒后它直到 20 秒才移动。我想以 1 的步长用 3 到 19 填补 2 和 20 之间的差距。但我还需要在这些特定索引的 mijn 距离数据中像这样填补它。有人知道怎么做吗?

我的理解是你的数据形式为

times = [0, 1, 2, 20, 21, 22]
rotations = [2.9, 3.1, 3.4, 2.5, 1, 0.7]

并想要以下输出:

times_interpolated = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
rotations_interpolated = [2.9, 3.1, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 2.5, 1, 0.7]

下面的解决方案不是很优雅,但应该很容易理解。请注意,这仅在时间为整数时才能可靠地工作。

times_interpolated, rotations_interpolated = [], []
i = 0
for t in range(times[0], times[-1] + 1):
    if t == times[i + 1]:
        i += 1
    times_interpolated.append(t)
    rotations_interpolated.append(rotations[i])

希望对您有所帮助。