我想知道是否有可能将具有更复杂数据的数组用作Eigen中的向量或矩阵。
示例:
struct data
{
/* some members...*/
double numericValue;
/* more members...*/
};
std::vector<data*> dataset;
是否可以告诉eigen如何访问 numericValue 成员并使用 dataset 进行计算? 我在文档中找到了 map 类,但没有找到所需的功能。 有什么想法吗?
答案 0 :(得分:1)
我不确定我是否理解你的问题,但你有结构化数据,你有交错元素,你想要组合成一个Vector或Matrix,以便对它进行特征操作。
如果您对此感兴趣,Map type确实是您的朋友。以下表达式应该为您提供您想要的(未经测试的):
typedef Map<VectorXd, 0, InnerStride<sizeof(data)/sizeof(double)> > MyMap;
MyMap map( &dataset[0].numericValue, dataset.size() );
现在你可以,例如做点什么
map *= 2.0;
按顺序将所有numericValue成员乘以2.0。