这与存储行主要或列主要的矩阵无关。
svd(C)
给你:
U S.asDiagonal() V.transpose() == C
</code>
所以最近的旋转
R
至
C
是:
R = U * V.transpose();
</code>
如果你想申请
R
到了一定程度
p
(存储为列向量),然后你做:
q = R * p;
</code>
现在你是否感兴趣
R
或者它的逆
R.transpose()==V.transpose()*U
你决定。
奇异值可以缩放列的列
U
,所以你应该反转列来获得
det(U)=1
。同样,与存储布局无关。