0

我是 Eigen 的新手,在 C++ 方面的经验有限。我有一个以稀疏格式表示的文件(如在 LIBSVM 中),我想使用 Eigen 将数据加载到矩阵中。有人可以告诉我该怎么做吗?如果您可以共享您的代码,那将非常有帮助。

因此,该文件的内容如下:

1:13 4:56 9:1

2:45 3:12 5:12 7:2

我想使用 Eigen 将其加载到矩阵中。

4

1 回答 1

4

您可以使用我们的loadMarket函数作为示例。市场格式如下所示:

%%MatrixMarket matrix coordinate real general
rows cols nnz
1 1 13
1 4 56
1 9 1
2 2 45
2 3 12
2 5 12
2 7 2

将 rows、cols 和 nnz 替换为实际的行数、列数和非零数。

基本上,最简单的方法是填充三元组 (i,j,value) 的 std::vector,然后调用 SparseMatrix::setFromTriplets 来创建稀疏矩阵。

另一种方法是编写一个简单的脚本,将您的格式转换为市场格式并调用 Eigen 的 loadMarket 函数。

于 2013-08-26T22:10:29.750 回答