特征库,Jacobi SVD


12345
2025-04-01 12:44:46 (2天前)


我正在尝试估计两组点之间的3D旋转矩阵,我想通过计算协方差矩阵的SVD(比如C)来做到这一点,如下所示:

U,S,V = svd(C)
R = V * U ^ T.
C在我…

2 条回复
  1. 0# google你他吗 | 2019-08-31 10-32



    这与存储行主要或列主要的矩阵无关。

    svd(C)

    给你:




    1. U S.asDiagonal() V.transpose() == C

    2. </code>


    所以最近的旋转

    R



    C

    是:




    1. R = U * V.transpose();

    2. </code>


    如果你想申请

    R

    到了一定程度

    p

    (存储为列向量),然后你做:




    1. q = R * p;

    2. </code>


    现在你是否感兴趣

    R

    或者它的逆

    R.transpose()==V.transpose()*U

    你决定。



    奇异值可以缩放列的列

    U

    ,所以你应该反转列来获得

    det(U)=1

    。同样,与存储布局无关。


登录 后才能参与评论