注意:我也在 Eigen 论坛上发布了此内容
我想用 3x3 矩阵预乘 3xN 矩阵,即变换 3D 点,如 p_dest = T * p_source
初始化矩阵后:
Eigen::Matrix<double, 3, Eigen::Dynamic> points = Eigen::Matrix<double, 3, Eigen::Dynamic>::Random(3, NUMCOLS);
Eigen::Matrix<double, 3, Eigen::Dynamic> dest = Eigen::Matrix<double, 3, Eigen::Dynamic>(3, NUMCOLS);
int NT = 100;
Run Code Online (Sandbox Code Playgroud)
我评估过这两个版本
// eigen direct multiplication
for (int i = 0; i < NT; i++){
Eigen::Matrix3d T = Eigen::Matrix3d::Random();
dest.noalias() = T * points;
}
Run Code Online (Sandbox Code Playgroud)
和
// col multiplication
for (int i = 0; i < NT; i++){
Eigen::Matrix3d T = Eigen::Matrix3d::Random(); …
Run Code Online (Sandbox Code Playgroud)