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

Eigen log and exp functions type casting error

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

Eigen::Matrix4d speedT = Eigen::Matrix4d::Identity();
//some other operations with speedT
Eigen::Matrix4d v = speedT.log();

错误是: 错误 17 error C2440: 'type cast' : 无法从 'const Eigen::MatrixExponentialReturnValue' 转换为 'Eigen::Matrix4d'

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

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

我认为如果您忘记

就会出现此错误
#include <unsupported/Eigen/MatrixFunctions>