首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xtensor:将视图赋值为double

xtensor:将视图赋值为double
EN

Stack Overflow用户
提问于 2022-06-10 04:41:01
回答 1查看 106关注 0票数 2

我正在尝试通过pandas库实现滚动平均值ala xtensor。但是,我无法将表达式xt::mean(x_window)分配给double result[i]

代码语言:javascript
复制
#include <iostream>
#include <xtensor/xarray.hpp>
#include <xtensor/xio.hpp>
#include <xtensor/xview.hpp>
#include <xtensor/xadapt.hpp>
#include <vector>

// implement rolling mean
template<typename T>
xt::xarray<T> rolling_mean(const xt::xarray<T> &x, const int window) {
    const auto nan = std::numeric_limits<T>::quiet_NaN();
    xt::xarray<T> result = xt::full_like(x, nan);
    for (int i = 0; i < x.shape()[0] - window + 1; i++) {
        auto x_window = xt::view(x, xt::range(i, i + window));
        result[i + window - 1] = xt::mean(x_window); // <-- problematic step
    }
    return result;
}

int main(int argc, char *argv[]) {
    using T = double;
    std::vector<T> v = {1, 2, 3, 4, 5};
    xt::xarray<T> a = xt::adapt(v);
    std::cout << rolling_mean(a,2) << std::endl; // [nan, 1.5, 2.5, 3.5, 4.5] expected
}

我该怎么解决这个问题?

错误消息导致编译失败。

代码语言:javascript
复制
error: assigning to 'double' from incompatible type 'xt::xfunction<xt::detail::divides, xt::xreducer<xt::xreducer_functors<xt::detail::plus, xt::const_value<double>>, const xt::xview<xt::xarray_container<xt::uvector<double, xsimd::aligned_allocator<double, 16>>, xt::layout_type::row_major, xt::svector<unsigned long, 4, std::allocator<unsigned long>, true>> &, xt::xrange<long>> &, xt::svector<unsigned long, 4, std::allocator<unsigned long>, true>, xt::reducer_options<double, std::tuple<xt::evaluation_strategy::lazy_type>>>, xt::xscalar<double>>'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-10 04:47:17

问题是,您实际上不是在调用xt::mean产生的可调用性,而是尝试将xt::mean的结果分配给double

要解决,只需添加括号(),然后将其分配给double,如下所示:

代码语言:javascript
复制
//----------------------------vv---->added this parenthesis
result[i] = xt::mean(x_window)();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72569161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档