0

我想知道是否可以调整具有更复杂数据的数组以用作 Eigen 中的向量或矩阵。

例子:

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

是否可以告诉 eigen 如何访问numericValue成员并使用数据集进行计算?我在文档中找到了地图类,但没有找到所需的功能。有任何想法吗?

4

1 回答 1

1

我不确定我是否正确理解您的问题,但您有结构化数据,其中您有交错的元素,您希望将其组合成向量或矩阵,以便对其执行特征运算。

如果这是您感兴趣的内容,那么Map 类型确实是您的朋友。下面的表达式应该给你你想要的(未经测试):

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

现在你可以做类似的事情

map *= 2.0;

为了将所有 numericValue 成员乘以 2.0。

于 2012-03-21T10:00:28.917 回答