c++ - 如何访问 C++ Eigen 稀疏矩阵中的特定(行,列)索引?

标签 c++ matrix indexing sparse-matrix eigen

我在 C++ 中使用 Eigen 中的稀疏矩阵工作。我想读取存储在特定行和列索引中的数据,就像使用常规特征矩阵一样。

std::vector<Eigen::Triplet<double>> tripletList;

// TODO: populate triplet list with non-zero entries of matrix

Eigen::SparseMatrix<double> matrix(nRows, nCols);
matrix.setFromTriplets(tripletList.begin(), tripletList.end());

// TODO:  set iRow and iCol to be valid indices.

// How to read the value at a specific row and column index?
// double value = matrix(iRow, iCol);  // Compiler error

我该如何进行这种类型的索引操作?

最佳答案

试试 coeff :

double value = matrix.coeff(iRow, iCol);

如果您想要一个非常量版本,请使用 coeffRef反而。注意当使用coeffRef时,如果元素不存在,就会被插入。

关于c++ - 如何访问 C++ Eigen 稀疏矩阵中的特定(行,列)索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42376127/

相关文章:

c++ - const ref lvalue 到 non-const func 返回值是否专门减少拷贝?

python - 有效地将大量 SciPy 稀疏矩阵条目设置为零

r - 如何按行中的值过滤表

java - 返回二维数组java中任意对象的索引。

c++ - 通过c++ xll的sql连接

c++ - 为什么在我单击.pro和main.cpp中的插件后,单击编辑文本后qml virtualkeyboard不显示

java - 矩阵到字符串输出

r - 在 R 中创建 data.frame 列组合的索引

sql - 这个SQL查询如何将重复的值插入数据库?

c++ - 我可以以编程方式重新排序wxDataViewCtrl的列吗