在犰狳中查找()的补充索引
Complementary indexes to find() in Armadillo
犰狳新人和R C++的基本问题。
我有一个向量X
,我想将下面的条目0
设置为给定值,将大于0
的条目设置为另一个值。犰狳具有find
函数,用于返回非零或满足关系条件(不合逻辑!?)的 X 元素的索引,所以我可以这样做:
arma::uvec ind0 = find(X < 0);
arma::uvec ind1 = find(X >= 0);
X(ind0).zeros();
X(ind1).fill(1);
这显然不是最好的解决方案。有什么更好的方法可以不涉及两次呼叫find
?
您可以使用 .transform() 成员函数。需要 C++11 编译器。
mat X(100,100,fill::randu);
X -= 0.5;
X.transform( [](double val) { return (val < 0) ? double(0) : double(1); } );
这就是你需要的!它将使值小于 0,等于 0,大于 1 的值等于 1。
X = clamp(X, 0, 1);
更多信息请见:http://arma.sourceforge.net/docs.html#clamp
相关文章:
- 查找最接近的大于当前数字的数字的索引
- 查找字符在两个索引之间出现的次数
- 如何查找哪个类对象位于数组的特定索引上(多态性)
- 在对向量中查找元素的索引
- 查找索引的最接近的真实值
- C++ char 类查找字符索引
- 保持排序的数据结构,允许log N插入时间,并且可以返回我在log N中查找的元素的索引
- 查找数组中重复(重复)数字的索引
- 查找下一个具有真值C++的数组索引
- 在不进行排序的情况下查找数组中n个最小值的索引
- 在索引0为0的数组中查找非零最小值C++
- 具有 O(1) 查找的 C++ 索引容器
- 在 openCV 矩阵中查找列最大值的索引和值
- 查找数组的第一个和最后一个索引,其中 from 和 to 元素的顺序总和最大
- 查找C++中两个索引之间的子字符串
- 尝试查找从索引 0 开始的偶数长度子字符串
- 在向量C++中查找特定的第一个和最后一个索引<float>
- 如何查找指向数组中元素的指针的索引
- 查找索引数据结构,例如`sTD :: vector`(非数组)
- 多集索引查找