MATLAB中的符号常量



我在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]

可能出于性能原因,在每一步中只自动应用非常简单的简化规则。

最新更新