c++ - Armadillo 错误 : no matching function for call to ‘inv(arma::SpMat<double>&)’

标签 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&) 原型(prototype),因为我将要操作的稀疏矩阵会占用数百个如果将其转换为非稀疏矩阵,则需要 GB 的 RAM。

还有,怎么样

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

sp_mat 不是支持列连接的类型吗?

如有任何帮助,我们将不胜感激!

编辑:关注稀疏矩阵求逆错误的问题。使用的 Armadillo 版本是 3.910.1

最佳答案

与前面关于 vecmat 的问题相比,至少从 Armadillo header 来看,似乎 sp_matmat 具有不相关的基本类型,因此您不能将 sp_mat 类型作为参数推送到 invjoin_cols,我想对底层数据结构做。另外,由于您需要的两个功能在这里都没有提到 http://arma.sourceforge.net/docs.html#SpMat我猜支持是不存在的。因为我至少部分理解需要将这样的 bix 矩阵保留为稀疏矩阵,所以使用像 http://math.nist.gov/sparselib++/ 这样的替代方案可能是有意义的和 http://math.nist.gov/mv++/

关于c++ - Armadillo 错误 : no matching function for call to ‘inv(arma::SpMat<double>&)’ ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18786706/

相关文章:

c++ - 这个c/c++循环能优化到什么程度?

c++ - C++类外函数

algorithm - 将小数矩阵转换为整数矩阵

c++ - 在 Eigen (C++) 中求解欠定方程组

RcppArmadillo::sample 函数导致 RStudio 和 R 崩溃

c++ - 从中间 C++ 链接列表问题插入

c++ - 将单独的数字转换为一个整数 C++

matlab - 在 MATLAB 中求逆矩阵,是 inv(A) 还是 AN\eye(size(A)) 更精确?

c++ - 在 Cmakelist 中添加 Arpack/Armadillo