найти построчно maxCoeff и индекс maxCoeff в Eigen

Я хочу найти максимальные значения и индексы по строке матрицы. Я основывал это на примере сайта eigen (. пример 7 ).

#include 
#include 

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;
}

Проблема в том, что моя строка

    VectorXf maxVal = mat.rowwise().maxCoeff(&maxIndex);

неправильно. Исходный пример имеет

    float maxNorm = mat.rowwise().sum().maxCoeff(&maxIndex);

т. е. задействована дополнительная редукция.sum (). какие-либо предложения? Думаю, мне просто нужен собственный эквивалент того, что в Matlab я бы написал как

[maxval maxind] = max(mymatrix,[],2)

то есть найти максимальное значение и его индекс по второму измерению mymatrix и вернуть в матрице (nrow (mymatrix ),2 ). Спасибо!

(также отправлено в собственный список, извините за перекрестную -публикацию.)

7
задан Florian Oswald 11 July 2012 в 10:24
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: