使用Eigen加载稀疏格式的文本文件

Load textfile in sparse format using Eigen

本文关键字:文本 文件 格式 Eigen 加载 使用      更新时间:2023-10-16

我是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

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

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

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