犰狳 - 如何从稀疏格式创建矩阵?

时间:2017-01-23 22:21:04

标签: c++ matrix armadillo

我们说我有一个稀疏矩阵。我用以下CSV格式定义它:

row,column,value 1,1,5 1,2,10

在这种情况下,点(1,1)等于5,点(1,2)等于10.

从这种格式创建矩阵的有效方法是什么(假设有数千或数十万行)?

换句话说,我希望相当于在Matlab中运行full(spconvert(m)),其中m是上面的矩阵。

1 个答案:

答案 0 :(得分:2)

您需要使用sp_mat稀疏矩阵类的批量插入构造函数之一。有一个如何在documentation中执行此操作的示例:

// batch insertion of two values at (5, 6) and (9, 9)
umat locations;
locations << 5 << 9 << endr
          << 6 << 9 << endr;

vec values;
values << 1.5 << 3.2 << endr;

sp_mat X(locations, values);