gpt4 book ai didi

C++ Eigen : 'Options' : is not a member of 'Eigen::MatrixBase'

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:25:41 25 4
gpt4 key购买 nike

每当我尝试为 Eigen 创建模板函数时,我都会遇到类似这样的错误:

error C2039: 'Options' : 不是 'Eigen::MatrixBase' 的成员

此错误来自以下函数

template<typename Derived1, typename Derived2>
void eig(const MatrixBase<Derived1> & A, MatrixBase<Derived2> & eigenvaluesBuff) {
EigenSolver<MatrixBase<Derived1>> es(A, false);
eigenvaluesBuff = es.eigenvalues().real().col(0);
}

矩阵 A 是由另一个函数返回的 MatrixXd。任何想法我做错了什么?如果一个函数返回一个 MatrixXd,你能不能不将该结果直接传递给 Eigen 中的模板函数?

最佳答案

为了完成 David 的回答,让我补充一点,您可以获得与给定表达式与 PlainObjectType 相匹配的 Matrix 类型。因此,更通用的解决方案是:

template<typename Derived1, typename Derived2>
void eig(const MatrixBase<Derived1> & A, MatrixBase<Derived2> & eigenvaluesBuff) {
EigenSolver<typename Derived1::PlainObjectType > es(A.derived(), false);
eigenvaluesBuff = es.eigenvalues().real().col(0);
}

关于C++ Eigen : 'Options' : is not a member of 'Eigen::MatrixBase<Derived>' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19644646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com