1
Wie wird eine Spalte einer dynamischen Matrix um 1 erhöht, als eine In-Situ-Operation (ohne Erstellen von Kopien/Zwischenprodukten)?Eigenschrittsäule nach Eins
Versuch:
#include <Eigen/Dense>
#include <iostream>
#include <stdint.h>
int main(void){
Eigen::MatrixXf A;
A = Eigen::MatrixXf::Random(3, 5);
std::cout << A << std::endl << std::endl;
A.col(1) = A.col(1)*2; //this works.
A.col(1) = A.col(1) + 1; //this doesn't work.
std::cout << A << std::endl;
}
die 'Array()' Ansatz ist es, was ich empfehlen würde. Wenn Sie hauptsächlich elementweise vorgehen, sollten Sie A 'von Anfang an als' Eigen :: ArrayXXf 'speichern. Sie können später noch über die 'matrix()' Methode auf 'A' als Matrix zugreifen. – chtz