Armadillo Lib(C ++):使用稀疏矩阵查找操作(sp_mat类)

时间:2015-02-04 10:37:04

标签: c++ armadillo

我尝试在find operator的上下文中使用armadillo sparse matrix (class sp_mat)

它在全矩阵的情况下工作正常;但是使用稀疏矩阵(以下示例中为d1

            mat  A  = randu<mat>(5,5);
            mat  B  = randu<mat>(5,5);
            uvec q2 = find(A != 0.5);

            uvec q1 = find(d1 != -0.5);   // d1 is a sparse matrix; ERROR REPORTED HERE

我收到以下错误:

Error   3   error C2678: binary '!=' : no operator found which takes a left-hand operand of type 'arma::sp_mat' (or there is no acceptable conversion)

有人可以建议我如何执行查找操作?

另外,如果有办法将稀疏矩阵(类sp_mat)转换为完整矩阵(类垫)?我试图使用“conv_to”而没有任何成功。

1 个答案:

答案 0 :(得分:4)

如何将稀疏矩阵转换为密集矩阵:

sp_mat A;
A.sprandu(20, 20, 0.1);

mat B(A);
B.print("B:");

mat类的构造函数可以将稀疏矩阵作为输入,如documentation中所列。