C++ xtensor:选择具有特定列值的行
我正在玩C++ xtensor:选择具有特定列值的行,c++,xtensor,C++,Xtensor,我正在玩xtensor,我只想执行一个简单的操作来选择具有特定列值的行。假设我有以下数组 [ [0, 1, 1, 3, 4 ] [0, 2, 1, 5, 6 ] [0, 3, 1, 3, 2 ] [0, 4, 1, 5, 7 ] ] 现在我想选择col2和col4的值为3的行。在本例中,它是第3行 [0, 3, 1, 3, 2 ] 我想达到类似的目的 如何在xtensor中实现这一点?方法是使用所需的列进行切片,然后查看所有列的条件是否正确 对于后者,xt::all(…
xtensor
,我只想执行一个简单的操作来选择具有特定列值的行。假设我有以下数组
[
[0, 1, 1, 3, 4 ]
[0, 2, 1, 5, 6 ]
[0, 3, 1, 3, 2 ]
[0, 4, 1, 5, 7 ]
]
现在我想选择col2
和col4
的值为3的行。在本例中,它是第3行
[0, 3, 1, 3, 2 ]
我想达到类似的目的
如何在
xtensor
中实现这一点?方法是使用所需的列进行切片,然后查看所有列的条件是否正确
对于后者,xt::all(…)
的重载似乎还没有实现(还!),但我们可以使用xt::sum(…,axis)
来实现同样的效果:
#包括
#包括
#包括
int main()
{
xt::xt传感器a=
{{0, 1, 1, 3, 4},
{0, 2, 1, 5, 6},
{0, 3, 1, 3, 2},
{0, 4, 1, 5, 7}};
自动测试=xt::equal(xt::view(a,xt::all(),xt::keep(1,3)),3);
自动n=xt::sum(测试,1);
自动idx=xt::展平索引(xt::argwhere(xt::equal(n,2));
auto b=xt::view(a,xt::keep(idx),xt::all());
标准::cout