固有の c++ では、vectorXf を (適切な次元の) matrixXf にどのようにマップしますか?
(外部オブジェクトに対してそれを行う方法についての良いドキュメントがあるので、私たちができることを知っています:
MatrixXf x_cen=Map<MatrixXf>(*x,*n,*p);
しかし、 が の場合x
はどうなるVectorXf
でしょうか。
.data() メンバー関数の後に Map を使用できます。
VectorXf vec(rows*cols);
vec = ...;
Map<MatrixXf> vec_view_as_a_matrix(vec.data(), rows, cols);
その後、Eigen オブジェクトと同様に vec_view_as_a_matrix を使用できます。vec_view_as_a_matrix への変更は、メモリを共有しているため、vec にも報告されます。新しい MatrixXf オブジェクトにコピーする場合は、作成した構造を使用します。
MatrixXf x_cen = Map<MatrixXf>(vec.data(), rows, cols);