Eigen log 和 exp 函数类型转换错误

Mir*_*san 2 c++ visual-studio eigen point-cloud-library

我正在使用 Eigen 来获取矩阵的指数和对数。我不明白为什么下面的代码会给我一个编译错误。代码是:

Eigen::Matrix4d speedT = Eigen::Matrix4d::Identity();
//some other operations with speedT
Eigen::Matrix4d v = speedT.log();
Run Code Online (Sandbox Code Playgroud)

错误是:错误 17 错误 C2440:“类型转换”:无法从“const Eigen::MatrixExponentialReturnValue”转换为“Eigen::Matrix4d”

错误 16 错误 C2027:使用未定义类型 'Eigen::MatrixExponentialReturnValue'

对于指数函数 (exp) 也会出现同样的问题。我尝试过它的不同变体也进行类型转换 (Eigen::Matrix4d) speedT.log(); 但结果是一样的...... eigen 的版本是 Eigen 3.2.8

Ash*_*Ash 6

我认为如果您忘记的话就会出现此错误

#include <unsupported/Eigen/MatrixFunctions>
Run Code Online (Sandbox Code Playgroud)