我是 Eigen 的新手,在 C++ 方面的经验有限。我有一个以稀疏格式表示的文件(如在 LIBSVM 中),我想使用 Eigen 将数据加载到矩阵中。有人可以告诉我该怎么做吗?如果您可以共享您的代码,那将非常有帮助。
因此,该文件的内容如下:
1:13 4:56 9:1
2:45 3:12 5:12 7:2
我想使用 Eigen 将其加载到矩阵中。
我是 Eigen 的新手,在 C++ 方面的经验有限。我有一个以稀疏格式表示的文件(如在 LIBSVM 中),我想使用 Eigen 将数据加载到矩阵中。有人可以告诉我该怎么做吗?如果您可以共享您的代码,那将非常有帮助。
因此,该文件的内容如下:
1:13 4:56 9:1
2:45 3:12 5:12 7:2
我想使用 Eigen 将其加载到矩阵中。
您可以使用我们的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 函数。