稀疏矩阵,左矩阵除以C

Sparse matrix, left matrix divide in C++

本文关键字:      更新时间:2023-10-16

我有两个稀疏矩阵A和B,我想计算x作为 X = AB,也是方程式A*X = B
的相同解决方案C 中有具有此功能的库吗?有什么想法吗?
编辑:
这是eigen和openCV中的求解片段,矩阵最初是图像,输出也是一个图像,如果片段中的b或ein呈密集,也更好,但我不能在eigen

中这样做。

Eigen::SparseLU<Eigen::SparseMatrix<float>> Solver;
EA.makeCompressed();
Solver.compute(EA);
if (Solver.info() != Eigen::Success) std::cout << Solver.lastErrorMessage() << std::endl;
else std::cout << "Success !" << std::endl;
cv::SparseMat IN(MatTraverse(Image));
Eigen::SparseMatrix<float> EIN = SparseCV2Eigen(IN);
Eigen::SparseMatrix<float> OUT = Solver.solve(EIN);
Eigen::MatrixXf OUTM(OUT);
OUTM.resize(Image.cols,Image.rows);
cv::Mat CVOUT(OUTM.rows(), OUTM.cols(), CV_32F, OUTM.data());

另一个,可以在MATLAB中使用X = AB在更快的时间

中求解相同的方程式

尝试这个:http://arma.sourceforge.net/docs.html#operators

它有很多用于矩阵的操作员:

操作员: - */%==!=&lt; => =&lt;>MAT,COL,ROW和CUBE类的超载操作员

含义:

  • 添加两个对象 -
    从另一个对象扣除一个对象或否定对象

/
对象通过另一个对象或标量的元素划分*
两个对象的矩阵乘法;除非将立方体乘以标量

,否则不适用于立方体类


Schur产品:两个对象的元素乘法

==
两个对象的元素平等评估;生成一个类型UMAT的矩阵,其条目指示在给定位置,两个对象的两个元素等于(1)还是不等于(0)!=
两个对象的元素不平等评估

=
至于==,但检查的检查是"大于或等于" &lt; =
至于==,但是检查的是"小于或等于"

至于==,但检查的费用为"大于" &lt;
至于==,但检查的费用是"小于"

相关文章:
  • 没有找到相关文章