如何在 Eigen 中以 MarketIO 格式保存 Eigen::DiagonalMatrix?

How to save Eigen::DiagonalMatrix in MarketIO format in Eigen?

使用 Eigen 3.2.1,我正在尝试将 Eigen::DiagonalMatrix 保存为 MarketIO 格式,如下所示:

#include <Eigen/Sparse>
#include <Unsupported/Eigen/SparseExtra>
using namespace Eigen;
...

size_t n = XX;
DiagonalMatrix<num_t, Dynamic> W(n);
...
saveMarket(W, "W.txt"); // error propagates from here

但是,我收到以下错误:

MarketIO.h|236|error: 'const class Eigen::DiagonalMatrix<double, -1>' has no
member named 'nonZeros'

这里有什么问题? Diagonal Matrices 完全实现了吗?

在此先感谢您的帮助。

好的!目前唯一的解决方案是使用以下方法:

saveMarketVector(W.diagonal(), "W.txt");