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

时间:2013-08-26 17:18:04

标签: c++ sparse-matrix eigen

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

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

1:13 4:56 9:1

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

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

1 个答案:

答案 0 :(得分: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替换为实际的行数,列数和非零数。

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

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