我试图迭代行主要稀疏矩阵的非零元素,如下所示:
Eigen::SparseMatrix<double,Eigen::RowMajor> Test(2, 3);
Test.insert(0, 1) = 34;
Test.insert(1, 2) = 56;
for (int k = 0; k < Test.outerSize(); ++k){
for (Eigen::SparseMatrix<double>::InnerIterator it(Test, k); it; ++it){
cout << it.row() <<"\t";
cout << it.col() << "\t";
cout << it.value() << endl;
}
}
但我没有看到正确的价值观。相反,我看到 it.row() 的随机值,it.col() 的值为 1 和 it.value() 的一些随机值,如下所示:
-17891602 1 -2.65698e+303
将 RowMajor 更改为 ColumnMajor 使代码按预期工作。
我不确定行主要部分出了什么问题?有人可以让我知道我在这里想念什么吗?
提前致谢