gpt4 book ai didi

c++ - 在 xtensor 中使用 xt::where 时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-04 12:31:46 37 4
gpt4 key购买 nike

我正在尝试在 xarray 中查找某些数组值的索引值。我有一个名为 lattice 的 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_indices(...) 转换为矩阵,参见 documentation .考虑以下示例:

#include <xtensor/xtensor.hpp>
#include <xtensor/xio.hpp>

int main()
{
xt::xtensor<size_t,2> a = xt::arange(5 * 5).reshape({5, 5});
size_t i = 4;
xt::xtensor<size_t,2> idx = xt::from_indices(xt::where(xt::equal(a, i)));
std::cout << idx << std::endl;
return 0;
}

关于c++ - 在 xtensor 中使用 xt::where 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58418220/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com