1c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include <iostream> 2c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include <Eigen/Dense> 3c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 4c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathusing namespace std; 5c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathusing namespace Eigen; 6c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 7c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathint main() 8c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{ 9c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath Eigen::MatrixXf m(2,4); 10c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath Eigen::VectorXf v(2); 11c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 12c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath m << 1, 23, 6, 9, 13c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 3, 11, 7, 2; 14c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 15c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath v << 2, 16c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 3; 17c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 18c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath MatrixXf::Index index; 19c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath // find nearest neighbour 20c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath (m.colwise() - v).colwise().squaredNorm().minCoeff(&index); 21c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 22c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath cout << "Nearest neighbour is column " << index << ":" << endl; 23c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath cout << m.col(index) << endl; 24c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath} 25