在给定布尔向量的情况下,如何从C++特征数组中移除某些系数
How do I remove certain coefficients from a C++ Eigen array, given a boolean vector?
我有一个Eigen::VectorXd v
,我想创建另一个向量w
,它只包含来自v
的满足某些标准的系数,比如积极性,比如
Eigen::VectorXd v(3);
v << -1, 0, 1;
w = v(v > 0);
std:: cout << v; // prints -1, 0, 1
std:: cout << w; // prints 1
如何在Eigen中做到这一点?
将v
复制到w
中,用std::sort
对w
进行排序,然后用std::find_if
找到第一个非正值。这将是你合格价值观清单的末尾。
您可以将任何其他条件与std::sort
一起使用。
using namespace std;
using namespace Eigen;
template<typename T>
void push_back(VectorXd &v, T val, T ref)
{
if (val > ref /*Or Your condition*/) {
v.conservativeResize(v.size() + 1);
v[v.size() - 1] = val;
}
}
int main()
{
VectorXd v(3);
v << 1, 2, 3;
const double ref = 0.0f;
push_back(v, 4.0, ref);
for (size_t i = 0; i < v.size(); i++)
cout << v(i) << " ";
return 0;
}
你明白了,你甚至可以将第一个论点模板化。
相关文章:
- 具有 2 个分量的数组的特征映射到 3 的向量
- 特征 3 方形数组除以列数组
- 计算数组的特征值/向量,而不是使用特征 3 计算矩阵
- 特征获取索引数组,其中向量中的值为真(不需要循环)
- 消除中间特征数组
- 特征:从数组类型中获取标量类型是否记录?
- 来自 2D 数组的特征图
- C++ char 数组特征:为什么字符串在数组结束之前停止?
- 将特征数组行保存在变量中
- 特征:累积可变大小的数组
- 为什么我不能将 op 结果乘以常量特征张量数组
- C++特征动态大小矩阵的数组
- 蓝牙LE:设置字节数组的特征会发送错误的值
- 特征:将数组映射到矩阵大小未知的矩阵
- 将特征向量复制到 C 数组
- 如何在特征中对二维数组的列执行简单的算术运算
- 如何将数据从数组复制到C++特征矩阵或向量
- 将数组复制C++作为特征矩阵的向量
- 在带有单元格数组的C 特征矩阵和MATLAB MXARRAY之间传递数据
- 数组特征导致模板参数推断失败