【发布时间】:2016-03-10 17:02:28
【问题描述】:
来自 R 的 Armadillo 和 C++ 新手的基本问题。
我有一个向量X,我想将0 下面的条目设置为给定值,将大于0 的条目设置为另一个值。犰狳具有返回indices of elements of X that are non-zero or satisfy a relational condition 的find 函数(不合逻辑!?)所以我可以这样做:
arma::uvec ind0 = find(X < 0);
arma::uvec ind1 = find(X >= 0);
X(ind0).zeros();
X(ind1).fill(1);
这显然不是最好的解决方案。不涉及两次调用find 的更好方法是什么?
【问题讨论】:
-
您可以使用 std::transform 并一次执行所有更改。