Voglio trovare i valori massimi e gli indici per riga di una matrice. Ho basato questo su un esempio su eigen website (esempio 7).trovare rowwise maxCoeff e Index of maxCoeff in Eigen
#include <iostream>
#include <Eigen/Dense>
using namespace std;
using namespace Eigen;
int main()
{
MatrixXf mat(2,4);
mat << 1, 2, 6, 9,
3, 1, 7, 2;
MatrixXf::Index maxIndex;
VectorXf maxVal = mat.rowwise().maxCoeff(&maxIndex);
std::cout << "Maxima at positions " << endl;
std::cout << maxIndex << std::endl;
std::cout << "maxVal " << maxVal << endl;
}
problema qui è che la mia linea
VectorXf maxVal = mat.rowwise().maxCoeff(&maxIndex);
è sbagliato. L'esempio originale ha
float maxNorm = mat.rowwise().sum().maxCoeff(&maxIndex);
cioè c'è una riduzione aggiuntiva .sum(). eventuali suggerimenti? Credo che voglio solo l'Eigen equivalente a quello che in MATLAB avrei scritto come
[maxval maxind] = max(mymatrix,[],2)
cioè trovare il valore massimo e dell'indice sopra la seconda dimensione di myMatrix e ritornare in un (nrow (myMatrix), 2) a matrice. grazie!
(inviata alla lista Eigen così, mi spiace per il cross-posting.)
hi jakob. sì, questo è ciò che ho implementato nel frattempo. grazie per la tua risposta! Ho fatto ricorso al forum egen kde, poiché non sembrano esserci molti utenti eigen su SOF. –