Ho uno Eigen::MatrixXd
e vorrei modificare tutti i suoi elementi applicando una funzione componente-saggio. Ad esempio:Applicare la funzione a tutti gli elementi della matrice Eigen
MatrixXd m = ...;
for each m[i][j]:
m[i][j] = exp(m[i][j]);
C'è un modo per raggiungere questo risultato?
sarebbe corretto? "m.unaryExpr (& std :: exp)" –
@XingShi No, perché ['std :: exp'] (http://en.cppreference.com/w/cpp/numeric/math/exp) ha sovraccarichi e 'unaryExpr' non è in grado di dedurre la firma del functor da' std :: exp' da solo (cioè, ci sono più di 1 candidati). Se "aiuti" il compilatore specificando il tipo di functor, come 'm.unaryExpr (& std :: exp)', funzionerà. –
vsoftco
Grazie mille, hai ragione. –