1、单位矩阵

       Eigen::Matrix3d A = Eigen::Matrix3d::Identity();


2、零矩阵

      Eigen::Vector3d T = Eigen::Vector3d::Zero();

      Eigen::Matrix3d A = Eigen::Matrix3d::Zero();


3、所有元素清零

     Eigen::Matrix3d A;

     A.setZero();


     Eigen::Vector3d T;

     T.setZero();


4、逆矩阵

      Eigen::Matrix3d A = Eigen::Matrix3d::Identity();

      Eigen::Matrix3d B = A.inverse();


5、转置

      Eigen::Matrix3d A = Eigen::Matrix3d::Identity();

      Eigen::Matrix3d B = A.transpose();


6、行列式

     Eigen::Matrix3d A = Eigen::Matrix3d::Identity(); 

     double v = A.determinant();


7、按行或列计算均值

     Eigen::MatrixXd A(100, 3);

     Eigen::Vector3d mean_row = A.rowwise().mean();

     Eigen::Vector3d mean_col = A.colwise().mean();


8、按行或列计算标准偏差

      Eigen::MatrixXd A(100, 3);

      Eigen::Vector3d mean_row = A.rowwise().std();

      Eigen::Vector3d mean_col = A.colwise().std();


9、四元数的归一化

      Eigen::Quaterniond   Quat;

      Quat.normalize();  或

      Eigen::Quaterniond  new_quat = Quat.normalized();



10、norm, normalize, normalized中的区别

       norm: 表示向量的二范数,即向量的模

       normalize: 向量归一化,是in-place修改,即对向量自身归一化, vec.normalize()

       normalized: 不修改向量自身值,只是返回一个归一化之后的新的向量, Eigen::Vector3d new_vec = vec.normalized()






标签: none

评论已关闭