Eigen 中的单位矩阵、零矩阵、求逆、转置、行列式、按行、列计算均值、标准差
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()
评论已关闭