Массив определенной пользователем структуры в Eigen - PullRequest
0 голосов
/ 01 марта 2012

Интересно, можно ли адаптировать массив с более сложными данными для использования в качестве вектора или матрицы в Eigen.

пример:

struct data
{
    /* some members...*/
    double numericValue;
    /* more members...*/
};
std::vector<data*> dataset;

можно ли сказать eigen, как получить доступ к элементу numericValue и использовать набор данных для расчетов? Я нашел класс map в документации, но не требуемый функционал. Есть идеи?

1 Ответ

1 голос
/ 21 марта 2012

Я не уверен, правильно ли я понимаю ваш вопрос, но что у вас есть структурированные данные, в которых есть чередующиеся элементы, которые вы хотели бы объединить в вектор или матрицу для выполнения собственных операций над ним.

Если это то, что вас интересует, действительно, Тип карты - ваш друг.Следующее выражение должно дать вам то, что вы хотите (не проверено):

typedef Map<VectorXd, 0, InnerStride<sizeof(data)/sizeof(double)> > MyMap;
MyMap map( &dataset[0].numericValue, dataset.size() );

теперь вы можете, например, сделать что-то вроде

map *= 2.0;

, чтобы умножить всех ваших членов numericValue на 2.0.*

...