这是前一个问题的延续 - 主要围绕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
答案 0 :(得分:1)
与之前关于vec
和mat
的问题相比,至少在查看armadillo标题时,似乎sp_mat
和mat
具有不相关的基数类型,所以你不能将sp_mat
类型作为参数推送到inv
和join_cols
,我想对底层数据结构做了。此外,由于您在此处未提及您所需的两项功能http://arma.sourceforge.net/docs.html#SpMat,我认为支持不存在。由于我至少部分地理解了将这样的bix矩阵保持为稀疏矩阵的必要性,使用http://math.nist.gov/sparselib++/和http://math.nist.gov/mv++/等替代方法可能是有意义的吗?