Карта eigen :: vectorXf в MatriXf

В eigen C ++, как вы
сопоставить vectorXf с matrixXf
(соответствующих размеров)

(есть хороший документы на
как это сделать для внешних объектов
так что я знаю, что мы можем сделать:

MatrixXf x_cen=Map<MatrixXf>(*x,*n,*p);

но что, если xэто VectorXf?

2

Решение

Вы можете использовать функцию-член .data (), а затем Map:

VectorXf vec(rows*cols);
vec = ...;
Map<MatrixXf> vec_view_as_a_matrix(vec.data(), rows, cols);

Затем вы можете использовать vec_view_as_a_matrix точно так же, как и любые другие Eigen-объекты, об изменениях в vec_view_as_a_matrix будет сообщаться и vec, поскольку они совместно используют память. Если вы хотите скопировать в новый объект MatrixXf, используйте конструкцию, которую вы написали:

MatrixXf x_cen = Map<MatrixXf>(vec.data(), rows, cols);
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector