行列の行ごとに最大値とインデックスを見つけたい。これは、 eigen Web サイトの例 (例 7)に基づいています。
#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;
}
ここでの問題は、私の行です
VectorXf maxVal = mat.rowwise().maxCoeff(&maxIndex);
間違っている。元の例には
float maxNorm = mat.rowwise().sum().maxCoeff(&maxIndex);
つまり、追加のリダクション .sum() が含まれます。助言がありますか?私は、matlabで次のように書くものと同等の固有値が欲しいだけだと思います
[maxval maxind] = max(mymatrix,[],2)
つまり、最大値を見つけ、それは mymatrix の 2 番目の次元のインデックスであり、(nrow(mymatrix),2) マトリックスで返します。ありがとう!
(固有リストにも送信されます。クロスポストはご容赦ください。)