c++ - Eigen bool 数组切片

标签 c++ matlab matrix slice eigen

在 MATLAB 中,从矩阵/数组(称为 logical indexing)中切出满足某些条件的值是很常见的。

vec = [1 2 3 4 5];
condition = vec > 3;
vec(condition) = 3;

我如何在 Eigen 中执行此操作?到目前为止,我有:

Eigen::Matrix<bool, 1, 5> condition = vec.array() > 3;

最佳答案

尝试 this :

#include <iostream>
#include <Eigen/Dense>

int main()
{
    Eigen::MatrixXi m(1, 5);
    m << 1, 2, 3, 4, 5;
    m = (m.array() > 3).select(3, m);
    std::cout << m << std::endl;

    return 0;
}

关于c++ - Eigen bool 数组切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16253415/

相关文章:

matlab - matlab 中是否有任何选项可以优化(行,列)以显示子图?

matlab - 采样率改变正弦波的音调,sound()函数,MATLAB

matlab - 3d 矩阵中周围单元格的索引和值

c++ - 创建一个类的数组

c++ - zmq::proxy 示例不起作用 ()

c++ - 模板 std::function 作为类成员函数 C++

c++ - 检测到 OpenCv 二维码但无法解码

debugging - 如何单步执行 MATLAB 调试器中的函数调用?

使用 std::vector 的 c++ 矩阵初始化

python - Python 中(大)1554 x 1554 矩阵的行列式