Eigen boolean array fatiamento

No MATLAB é comum dividir valores que satisfaçam alguma condição de uma matriz / matriz (chamadaindexação lógica).

vec = [1 2 3 4 5];
condition = vec > 3;
vec(condition) = 3;

Como faço isso no Eigen? Até agora eu tenho:

Eigen::Matrix<bool, 1, 5> condition = vec.array() > 3;

questionAnswers(2)

yourAnswerToTheQuestion