擅长:python、mysql、java
<p>我使用<a href="https://math.stackexchange.com/questions/1022682/how-do-i-prove-that-a-matrix-is-a-rotation-matrix?newreg=fe86d105e3364c76a24545e8082fac59">this</a>旋转矩阵的定义。旋转矩阵应该满足条件<code>M (M^T) = (M^T) M = I</code>和{<cd2>}。这里<code>M^T</code>表示<code>M</code>的转置,<code>I</code>表示单位矩阵,<code>det(M)</code>表示矩阵<code>M</code>的行列式。在</p>
<p>您可以使用下面的python代码来检查矩阵是否是旋转矩阵。在</p>
<pre><code>import numpy as np
''' I have chosen `M` as an example. Feel free to put in your own matrix.'''
M = np.array([[0,-1,0],[1,0,0],[0,0,1]])
def isRotationMatrix(M):
tag = False
I = np.identity(M.shape[0])
if np.all((np.matmul(M, M.T)) == I) and (np.linalg.det(M)==1): tag = True
return tag
if(isRotationMatrix(M)): print 'M is a rotation matrix.'
else: print 'M is not a rotation matrix.'
</code></pre>