Eigen boolean array slicing

En MATLAB es común dividir los valores que satisfacen alguna condición de una matriz / matriz (llamadaindexación lógica).

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

¿Cómo hago esto en Eigen? Hasta ahora tengo:

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

Respuestas a la pregunta(2)

Su respuesta a la pregunta