【问题标题】:C++ Eigen non-contiguous subsetsC++ 特征非连续子集
【发布时间】:2018-06-21 20:01:03
【问题描述】:

我对@9​​87654323@ 不连续的子集很好奇。例如:

Eigen::VectorXd vec = VectorXd::Random(10);
Eigen::VectorXi idx; idx << 2, 5, 6;

Eigen::Block<Eigen::VectorXd> refVec = vec(idx);

但这无法编译。

我发现了一些以前的问题,例如this one。但是,我在 bugzilla 上看到,这个功能现在应该可以在 Eigen 中使用,这似乎是我在上面显示的语法。

任何关于如何在没有for 循环的情况下访问非连续元素的见解都会有所帮助。

【问题讨论】:

    标签: c++ eigen


    【解决方案1】:

    如果您使用 default 分支和自动,这可以开箱即用:

    auto refvec = vec(idx);
    

    如果你真的不能使用devel分支,那就关注doc page吧。

    【讨论】:

    • 所以它还在devel。我认为它是在 bugzilla cmets 的情况下发布的。有没有地方知道什么时候合并到master
    • 没有master,严格来说叫default,但本质上是一样的,所以是的,它已经合并了,但还没有发布。
    • 谢谢,下一个版本有时间表吗?我一直在尝试订阅 eigen 邮件列表向那里提问,但一直没有得到回复。
    • 文档中的函数是对原始矩阵的直接引用吗?它是索引元素的副本吗?
    • 它是一个参考,没有副本。
    猜你喜欢
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 2020-09-21
    相关资源
    最近更新 更多