我在MATLAB中玩齐次变换。我得到了一个像这样的变换
>> T01
T01 =
[ cos(phi1), -sin(phi1), 0, 0]
[ sin(phi1), cos(phi1), 0, 0]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]
绕z轴简单旋转。我用phi1=sym('phi1')
。现在,如果我计算逆T01 * inv(T01)
MATLAB不显示单位矩阵,而是一个矩阵与巨大的表达式。如果我使用任何显式的phi1
值,它工作。我如何使MATLAB取消符号值?
编辑:有趣的是,对于某些操作,它会取消符号常量:
>> (phi1*phi2)/phi1
ans =
phi2
使用simplify
>> simplify(T01*inv(T01))
ans =
[ 1, 0, 0, 0]
[ 0, 1, 0, 0]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]
可能出于性能原因,在每一步中只自动应用非常简单的简化规则。