gpt4 book ai didi

python - 带有空间数据的 numpy 数组;快速获得角速度?

转载 作者:行者123 更新时间:2023-11-28 18:14:50 25 4
gpt4 key购买 nike

我正在以 numpy 数组的形式将空间数据存储在历史记录中。每行都是一个 4 维向量,其中第一列包含 POSIX 时间戳,其他三列包含实际空间数据。空间向量都是单位向量,相互之间只有旋转关系。

关于如何计算条目之间的角速度是否有某种捷径?

手动执行此操作,我将通过 diff 计算第一列的时间戳增量 dt 和类似

的条目之间的角度
dt = np.diff(data[:,0])
for i in range(data.shape[0]):
np.arccos(np.dot(data[i-1,1:], data[i,1:])) / dt[i]

但如图所示,我会在 for 循环中执行后者,因此希望有一些奇特的单行命令可以执行相同的操作,几乎类似于 diff(),类似于

dt = np.diff(data[:,0])
da = np.ang_diff(data[:,1:3])
v = da / dt

最佳答案

我认为你应该能够用 np.einsum 和一些切片来做到这一点

def ang_diff(data):
return np.arccos(np.einsum('ij,ij->i', data[1:], data[:-1], optimize = True))

据我所知,其余部分都经过了相当多的优化。

关于python - 带有空间数据的 numpy 数组;快速获得角速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48984575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com