C++ 在xtensor中使用xt::where时遇到问题
我试图在xarray中找到某些数组值的索引值。我有一个叫做C++ 在xtensor中使用xt::where时遇到问题,c++,numpy,xtensor,C++,Numpy,Xtensor,我试图在xarray中找到某些数组值的索引值。我有一个叫做latticefilled的xarray,包含数字1到n,我想要的是 auto x2 = xt::where(lattice == i) 获取将用于距离函数的lattice中元素i的索引值,但我得到的消息是=与操作数不匹配。当我使用>时,这个问题不会发生,所以我只是想知道区别是什么 我在python中使用了np.where(lattice==I),我正在尝试将其翻译过来 您必须使用xt::equal(a,b)而不是a==b。事实上,这与
lattice
filled的xarray,包含数字1到n,我想要的是
auto x2 = xt::where(lattice == i)
获取将用于距离函数的lattice
中元素i
的索引值,但我得到的消息是=
与操作数不匹配。当我使用>
时,这个问题不会发生,所以我只是想知道区别是什么
我在python中使用了
np.where(lattice==I)
,我正在尝试将其翻译过来 您必须使用xt::equal(a,b)
而不是a==b
。事实上,这与例如a>b
不同,后者与xt::greater(a,b)
完全相同
还请注意,可以使用xt::from_index(…)
将索引列表转换为矩阵,请参阅。考虑下面的例子:
#包括
#包括
int main()
{
xt::xtensor a=xt::arange(5*5)。重塑({5,5});
尺寸i=4;
xt::xtensor idx=xt::from_索引(xt::where(xt::equal(a,i));
标准::cout