【问题标题】:How to save Eigen::DiagonalMatrix in MarketIO format in Eigen?如何在 Eigen 中以 MarketIO 格式保存 Eigen::DiagonalMatrix?
【发布时间】: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 个数组。您可以手动保存它们。

标签: c++ save eigen diagonal


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多