稀疏矩阵,左矩阵除以C
Sparse matrix, left matrix divide in C++
我有两个稀疏矩阵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;
至于==,但检查的费用是"小于"
相关文章:
- 没有找到相关文章