根据 Eigen documentation ,我希望以下内容起作用:
#include "Eigen/Dense"
#include "Eigen/Sparse"
SparseMatrix<double> mymatrix = SomeFunctionReturningASparseMatrix();
SparseMatrix<double> test = mymatrix.selfadjointView<Lower>();
但是,我得到了编译时错误
conversion from 'Eigen::SparseSelfAdjointView<Eigen::SparseMatrix<double>, 2u>' to
non-scalar type 'Eigen::SparseMatrix<double>' requested
我做错了什么?缺少包含?
第二个问题:据我所知,Eigen 还不支持 SparseSelfadjointViews 与 SparseMatrices 的乘法。我是不是遗漏了什么,或者这实际上没有实现?
最佳答案
你的函数 mymatrix.selfadjointView<Lower>()
返回 SparseSelfAdjointView<SparseMatrix<double>, 2u>
类型的对象并且您正试图将其转换为 SparseMatrix<double>
在此行内:
SparseMatrix<double> test = mymatrix.selfadjointView<Lower>();
你也应该
#include <SelfAdjointView.h>
关于c++ - Eigen :使用 SparseMatrix 的 selfAdjointView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12996352/