You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中旋转平移齐次矩阵拼接问题(MATLAB转Python)

解决Python中构造4×4齐次变换矩阵的问题

你当前构造齐次变换矩阵RT的代码会因为数组维度不匹配报错,直接用np.array([[R, T], [0,0,0,1]])无法正确拼接出4×4矩阵——原因是R是3×3数组、T是3×1数组,numpy无法自动将它们组合成二维的4×4矩阵,反而会生成高维数组。

正确实现方法

方法1:使用np.block(最贴近MATLAB的拼接逻辑)

np.block可以像MATLAB里一样直接按块拼接矩阵,写法直观:

# 构造4×4齐次变换矩阵
RT = np.block([
    [R, T],
    [[0, 0, 0, 1]]
])

方法2:分步使用np.hstack和np.vstack

先横向拼接旋转矩阵R和平移向量T得到3×4的顶部矩阵,再纵向拼接底部的[0,0,0,1]行:

# 横向拼接R(3×3)和T(3×1),得到3×4矩阵
top_part = np.hstack((R, T))
# 构造底部的1×4行向量
bottom_part = np.array([[0, 0, 0, 1]])
# 纵向拼接成4×4矩阵
RT = np.vstack((top_part, bottom_part))

额外小修正

你的代码里导入matplotlib的语句有误,应该改为:

import matplotlib.pyplot as plt

内容的提问来源于stack exchange,提问作者Nick X Tsui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 15:22:12