【问题标题】:Select a part of a vector with C++ and Eigen [closed]使用 C++ 和 Eigen 选择向量的一部分 [关闭]
【发布时间】:2016-08-09 22:38:27
【问题描述】:

我想使用库 Eigen 在 C++ 中选择向量的一部分?

我的意思是如果我有这个向量:

VectorXd v(6);
v << 1, 2, 3, 8, 1, 2;

有没有返回这个向量的函数:

a << 2, 8, 2;

?

因为我知道如何只选择向量的一部分,但只能选择一个而不是两个的步长。

【问题讨论】:

    标签: c++ c++11 c++14 eigen eigen3


    【解决方案1】:

    没有功能可以做这个超级具体的事情。如果是这样,它可能会在eigen block operations 之下。你最好的选择是编写你自己的函数。类似的东西:

    void addConsecutiveSpacedElements(VectorXd &out, const VectorXd &in, int start, int space) {
        int index = 0;
        for (int in_index = start, in_index < in.size(); in_index += space) {
            out[index++] = in[in_index];
        }
    }
    
    ...
    
    addConsecutiveSpacedElements(a, v, 1, 2);
    

    注意:这本质上是伪代码,因此没有错误检查等。它也未经测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-22
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 2016-01-11
      • 2016-04-01
      • 1970-01-01
      相关资源
      最近更新 更多