mindsponge.common.quat_multiply_by_vec
- mindsponge.common.quat_multiply_by_vec(quat, vec)[源代码]
计算四元数与纯向量四元数的乘积。
\[temp = QUAT_MULTIPLY_BY_VEC * quat[..., :, None, None] * vec[..., None, :, None] result = sum(tempc,axis=(-3, -2))\]- 参数:
quat (Tensor) - 输入的四元数,shape为 \([(..., 4)]\) 的 Tensor。
vec (Tensor) - 纯向量四元数, \((b, c, d)\) 的未归一化四元数,其中归一化四元数能被表示成 \((1, b, c, d)\)。
- 返回:
Tensor,计算后的结果,shape 为 \([(..., 4)]\) 。
- 支持平台:
Ascend
GPU
样例:
>>> import numpy as np >>> from mindsponge.common.geometry import quat_multiply_by_vec >>> from mindspore.common import Tensor >>> from mindspore import dtype as mstype >>> np.random.seed(1) >>> quat = Tensor(np.random.rand(4),dtype=mstype.float32) >>> vec = Tensor(np.random.rand(3),dtype=mstype.float32) >>> out = quat_multiply_by_vec(quat, vec) >>> print(out) [-0.16203496, 0.03330477, -0.05129148, 0.14417158]