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

Posted

技术标签:

【中文标题】如何在 Eigen 中以 MarketIO 格式保存 Eigen::DiagonalMatrix?【英文标题】:How to save Eigen::DiagonalMatrix in MarketIO format in Eigen? 【发布时间】:2016-07-20 17:37:30 【问题描述】:

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

#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 实现的吗?

提前感谢您的帮助。

【问题讨论】:

然后尝试 3.2.9 或 3.3-beta1 @kangshiyin:你确定3.2.9+有吗? 不!至少在Eigen 3.2.9 中,.nonZeros() 没有在DiagonalMatrix.h 中为DiagonalMatrix 定义MarketIO.h 仍然使用.nonZeros() 好的,看来不受支持的部分太旧了... 只有 3 个数组。您可以手动保存它们。 【参考方案1】:

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

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

【讨论】:

以上是关于如何在 Eigen 中以 MarketIO 格式保存 Eigen::DiagonalMatrix?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET 中以 'YYYY-MM-DD' 格式获取当前日期?

如何在 Swift 中以 wav 格式录制音频?

如何在 Excel 中以条件格式自动填充条件?

如何在android中以表格格式显示数据?

如何在 MATLAB 中以 *.dat 格式导出图像

如何在ios中以24小时格式显示上午/下午