Ich arbeite in C++ mit einer Sparse-Matrix in Eigen. Ich würde gerne die Daten lesen, die in einem bestimmten Zeilen- und Spaltenindex gespeichert sind, genau wie ich es bei einer regulären Eigenmatrix tun würde.Zugriff auf einen bestimmten (Zeilen-, Spalten-) Index in einer C++ Eigen-Sparse-Matrix?
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
Wie gehe ich bei der Durchführung dieser Art von Indizierung vor?
Eine mögliche Lösung besteht darin, eine dichte Matrix aus der dünn besetzten Matrix aufzubauen ('Eigen :: MatrixXd dicht = Eigen :: MatrixXd (spärlich);'), aber dies hat einen hohen Rechenaufwand und ist in den meisten Anwendungen unerwünscht . – MattKelly