我尝试在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”而没有任何成功。
答案 0 :(得分:4)
如何将稀疏矩阵转换为密集矩阵:
sp_mat A;
A.sprandu(20, 20, 0.1);
mat B(A);
B.print("B:");
mat
类的构造函数可以将稀疏矩阵作为输入,如documentation中所列。