我正在按照以下示例循环遍历稀疏矩阵的元素。
SparseMatrix<double> mat(rows,cols);
for (int k=0; k<mat.outerSize(); ++k)
for (SparseMatrix<double>::InnerIterator it(mat,k); it; ++it)
{
it.value();
it.row(); // row index
it.col(); // col index (here it is equal to k)
it.index(); // inner index, here it is equal to it.row()
}
这个例子我完全没问题。但是,我拥有的矩阵是对称的,我只想遍历下半部分。有什么简单的方法可以遍历对称矩阵吗?
最佳答案
您可以在每个循环开始时检查它:
for (int k=0; k<mat.outerSize(); ++k)
for (SparseMatrix<double>::InnerIterator it(mat,k); it; ++it)
{
if(it.row() < it.col())
continue;
}
关于c++ - 迭代 Eigen 中的对称稀疏矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51016392/