gpt4 book ai didi

python - 将矩阵乘以Numpy中另一个矩阵的每一行

转载 作者:太空宇宙 更新时间:2023-11-04 00:34:43 25 4
gpt4 key购买 nike

我有一个大小为 (4x4) 的齐次变换矩阵和一个大小为 (nx3) 的轨迹。该轨迹的每一行都是一个向量。

我想将齐次变换矩阵乘以每一行轨迹。下面是代码:

#append zero column at last
trajectory = np.hstack((trajectory, np.zeros((trajectory.shape[0], 1)))) #(nx3)->(nx4)

trajectory_new = np.zeros((1, 3)) #(1x3)
for row in trajectory:
vect = row.reshape((-1,1)) #convert (1x4) to (4x1)
vect = np.dot(HTM, vect) #(4x4) x (4x1) = (4x1)
vect = vect.T #(1x4)
vect = np.delete(vect, -1, axis=1) #remove last element from vector
trajectory_new = np.vstack((trajectory_new, vect)) #(nx3)

trajectory_new = np.delete(trajectory_new, 0, axis=0)#remove first row

上面的代码有效。但是,我正在寻找更简单的解决方案,例如:

trajectory_new = np.apply_along_axis(np.multiply, 0, trajectory, HTM)

请帮忙。

回答:

trajectory = np.hstack((trajectory, np.ones((trajectory.shape[0], 1))))#(nx3)->(nx4)
trajectory_new = trajectory.dot(HTM.T)[:,:-1]

最佳答案

你能举个输入和输出的例子吗?但似乎np.dot(HTM, trajectory.T)[:3].T 可以解决问题吗?

为什么不将 HTM 的最后一行删除,而不是将 0 列附加到 trajectory

关于python - 将矩阵乘以Numpy中另一个矩阵的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44538324/

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