Ich habe eine do_magic
Methode, die ein Doppel und fügt 42 dazu. Ich möchte diese Methode auf jeden Koeffizienten einer Eigen::Matrix
oder Eigen::Array
anwenden (das heißt, ich hätte nichts dagegen, wenn es nur mit einem der beiden Typen möglich ist).Coefficient-weise benutzerdefinierte Funktionen in Eigen
Ist das möglich?
So:
Eigen::MatrixXd m(2, 2);
m << 1,2,1,2;
m.applyCoefficientWise(do_magic);
// m is now 43, 44, 43, 44
ich hinzufügen, dass würde, dass, wenn Sie disjoint effizient, tun müssen, und an Ort und Stelle Modifikation der Elemente, können Sie immer die hässliche std verwenden: : for_each auf m.data(). Die Kosten für das oben genannte können jedoch vollkommen akzeptabel sein, abhängig davon, was Sie mit m danach machen (da es eine faule Auswertung implementiert). –
Sowohl die Antwort als auch der Kommentar sind genau das, was ich gesucht habe! Vielen Dank. –