如何在Eigen中执行索引操作
How do I perform index operations in Eigen?
我需要给我的代码的一部分索引到存储为Eigen::Array
类型的对象。我无法将Eigen的功能扩展到该代码段,也无法将指针传递给它。我需要一个索引表示匹配值在数组中的位置。
假设我有一个这样的Eigen::Array
对象:
Eigen::Array<int,5,1> mat;
mat << 0, 0, 1, 0, 1;
现在我想在上面的矩阵中找到一个元素的第一个索引,它比较等于某个条件(比如说,它们比较等于true)。
所以对于上面的输入,我希望输出为2
。我也会接受4
的输出,因为我不是特别担心顺序(如果存在指定搜索方向的选项,这将是好的,但不是必需的)。
std::size_t const index = FindIndex(mat);
assert(index == 2 || index == 5); // please don't fail!
我知道我可以通过数组循环并通过计数器手动实现这一点,但这在某种程度上错过了Eigen
的要点。是否有一种方法来实现这一使用Eigen
的内置功能(其他 unaryExpr
?
No。我看你没有什么可以用的
你可以找到有多少个非零值:
std::size_t const numNonZero = (mat != 0).count();
assert(numNonZero == 2);
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 数组索引的值没有增加
- C++,系统无法执行指定的程序
- 使用C++中的模板和运算符重载执行矩阵运算
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 执行函数时导致崩溃的变量
- 无论条件是否为true,if总是在c++中执行
- 当函数模板参数是具有默认参数的类模板时,函数模板参数的推导如何执行
- 在C++中对T*类型执行std::move的意外行为
- 查找最接近的大于当前数字的数字的索引
- 我们可以使用Back() - 值索引在其上执行向量插入
- 通过我的可执行文件的资源 ID 获取图标索引,C++
- 在C++中,执行去引用和获取索引0的操作是相同的
- C++数据结构来执行索引列表
- 如何在Eigen中执行索引操作
- 如何从数组执行索引搜索
- 如何执行索引搜索方法
- 试图对字符串执行索引搜索
- c++ 64位-无法读取符号:存档没有索引;执行ranlib命令添加