首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在eige中使用rowwise()时出现异常

在eige中使用rowwise()时出现异常
EN

Stack Overflow用户
提问于 2018-02-11 21:16:51
回答 1查看 174关注 0票数 0

我是新来eigen的。我在OpenCV表单中的条目,我必须使用Map类,以便将它们转换为eigen表单。我写了以下代码:

代码语言:javascript
运行
复制
int main()
{
    Mat label_data, train_data;
    //some code
    Eigen::Map<Eigen::Matrix<double, -1, -1, 1>> train_data_in_Eigen(train_data.ptr<double>(), train_data.rows, train_data.cols);
    Eigen::Map<Eigen::Matrix<double, -1, -1, 1>>* pTrain_data_in_Eigen = &train_data_in_Eigen;
    foo(train_labels, pTrain_data_in_Eigen);
    //some code
}
void foo(std::vector<int> gnd, Eigen::Map<Eigen::Matrix<double, -1, -1, 1>>* pdata)
{
    Eigen::Map<Eigen::Matrix<double, -1, -1, 1>> _data = *pdata;
    auto meanOf_data = _data.colwise().mean();
    _data.rowwise() -= meanOf_data;
    //some code
}

我在_data.rowwise() -= meanOf_data;行中有这个Exception ErrorException thrown at: Access violation reading location。但是当我这样写的时候:auto dd = _data.rowwise() -= meanOf_data,我没有Exception。有什么问题吗?该如何修复呢?

EN

回答 1

Stack Overflow用户

发布于 2018-02-11 22:35:02

由于automeanOf_data是一个引用死的临时对象的表达式,而不是一个实际的向量。阅读common pitfalls。解决方案:

代码语言:javascript
运行
复制
RowVectorXd meanOf_data = _data.colwise().mean();

或者:

代码语言:javascript
运行
复制
auto meanOf_data = _data.colwise().mean().eval();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48731879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档