Armadillo错误:没有匹配函数来调用'inv(arma :: SpMat <double>&amp;)'</double>

时间:2013-09-13 12:47:12

标签: c++ linear-algebra armadillo

这是前一个问题的延续 - 主要围绕Armadillo C ++库中对SpMat(或sp_mat)的支持。

当试图反转稀疏矩阵时,我得到了编译错误

error: no matching function for call to ‘inv(arma::SpMat<double>&)’

我宁愿不为sp_mat编写自己的矩阵求逆,除非我真的必须这样做,而且我不能使用inv(arma :: Mat&amp;)原型,因为我将要操作的稀疏矩阵会占用数百个如果转换为非稀疏矩阵,则为GB的GB。

另外,

怎么样?
error: no matching function for call to ‘join_cols(arma::sp_mat, arma::sp_mat)’

sp_mat不是加入列的受支持类型吗?

非常感谢任何帮助!

编辑:关于稀疏矩阵反演误差的重点问题。正在使用的犰狳版本是3.910.1

1 个答案:

答案 0 :(得分:1)

与之前关于vecmat的问题相比,至少在查看armadillo标题时,似乎sp_matmat具有不相关的基数类型,所以你不能将sp_mat类型作为参数推送到invjoin_cols,我想对底层数据结构做了。此外,由于您在此处未提及您所需的两项功能http://arma.sourceforge.net/docs.html#SpMat,我认为支持不存在。由于我至少部分地理解了将这样的bix矩阵保持为稀疏矩阵的必要性,使用http://math.nist.gov/sparselib++/http://math.nist.gov/mv++/等替代方法可能是有意义的吗?