Quiero encontrar los valores máximos y los índices por fila de una matriz. Basé esto en un ejemplo en el eigen website (ejemplo 7).encuentra rowwise maxCoeff e índice de maxCoeff en 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 aquí es que mi línea
VectorXf maxVal = mat.rowwise().maxCoeff(&maxIndex);
está mal. El ejemplo original tiene
float maxNorm = mat.rowwise().sum().maxCoeff(&maxIndex);
es decir, hay una reducción adicional .sum() involucrado. ¿alguna sugerencia? Creo que sólo quiero que el eigen equivalente a lo que en Matlab que iba a escribir como
[maxval maxind] = max(mymatrix,[],2)
es decir, encontrar el máximo valor y del índice sobre la segunda dimensión de myMatrix y regresar en un (nrow (myMatrix), 2) la matriz. gracias!
(enviado a la lista Eigen, así, lo siento por la publicación cruzada.)
hi jakob. sí, eso es lo que implementé mientras tanto. ¡gracias por tu respuesta! Recurrí al foro de eigen kde, ya que parece que no hay muchos usuarios de SOF. –