numpy 列出齐次变换矩阵的最有效方法是什么?

tpgth1q7  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(152)

我需要一个遵循此形式的4X4矩阵列表:

a # An array of shape [n,3]

[[cos(a[0]),-sin(a[0]),0,a[1]],
[sin(a[0]),cos(a[0]),0,a[2]],
[0,0,1,0],
[0,0,0,1]])
hmae6n7t

hmae6n7t1#

怎么样:

import numpy as np

n = 1000000
a = np.random.rand(n, 3)

c = np.cos(a[:, 0])
s = np.sin(a[:, 0])
dx = a[:, 1]
dy = a[:, 2]
z = np.zeros(n)
o = np.ones(n)

out = np.array([
    [c, -s,  z, dx],
    [s,  c,  z, dy],
    [z,  z,  o,  z],
    [z,  z,  z,  o],
]).transpose(2, 0, 1)

相关问题