我想知道是否可以调整具有更复杂数据的数组以用作 Eigen 中的向量或矩阵。
例子:
struct data
{
/* some members...*/
double numericValue;
/* more members...*/
};
std::vector<data*> dataset;
是否可以告诉 eigen 如何访问numericValue成员并使用数据集进行计算?我在文档中找到了地图类,但没有找到所需的功能。有任何想法吗?
我想知道是否可以调整具有更复杂数据的数组以用作 Eigen 中的向量或矩阵。
例子:
struct data
{
/* some members...*/
double numericValue;
/* more members...*/
};
std::vector<data*> dataset;
是否可以告诉 eigen 如何访问numericValue成员并使用数据集进行计算?我在文档中找到了地图类,但没有找到所需的功能。有任何想法吗?
我不确定我是否正确理解您的问题,但您有结构化数据,其中您有交错的元素,您希望将其组合成向量或矩阵,以便对其执行特征运算。
如果这是您感兴趣的内容,那么Map 类型确实是您的朋友。下面的表达式应该给你你想要的(未经测试):
typedef Map<VectorXd, 0, InnerStride<sizeof(data)/sizeof(double)> > MyMap;
MyMap map( &dataset[0].numericValue, dataset.size() );
现在你可以做类似的事情
map *= 2.0;
为了将所有 numericValue 成员乘以 2.0。