c++ - Eigen :使用 SparseMatrix 的 selfAdjointView

标签 c++ sparse-matrix eigen

根据 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/

相关文章:

c++ - 实现可被接受为 std::ostringstream 引用的无操作 std::ostringstream

Python - Pandas 数据帧连接内存中的气球

tensorflow - 有没有 Eigen/CXX11 的文件?

c++ - 如何传递特征矩阵行引用,将其视为 vector ?

c++ - 如何镜像矩阵的其中一个维度?

c++ - Qt:如何让 QImage 知道更新的内存缓冲区?

c++ - 在 DLL 中导出的 C++ 函数中使用 #ifdef block

c++ - 接收 COM 事件

matrix - 关于 CRS 稀疏矩阵存储

python - 将两列数据框转换为 Pandas 中的出现矩阵