带空间数据的Numpy阵列;快速获得角速度



我正在以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]

,但如图所示,我会在循环中做后者,因此希望有一些奇特的单线命令可以做同样的命令,几乎像 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))

据我所知,其余的几乎是优化的。

最新更新