Несмотря на то, что этот вопрос немного устарел, для записи: Эйген не явно вычисляет матрицу Q, а представляет собой последовательность векторов Домехолдера, которую можно непосредственно умножить на любую матрицу (с правильным числом строк).
Если вы на самом деле явно хотите получить тонкую матрицу Q, просто умножьте ее на единичную матрицу желаемого размера:
#include <Eigen/QR>
#include <iostream>
int main()
{
using namespace Eigen;
MatrixXf A(MatrixXf::Random(5,3));
HouseholderQR<MatrixXf> qr(A);
MatrixXf thinQ = qr.householderQ() * MatrixXf::Identity(5,3);
std::cout << thinQ << '\n';
}