【问题标题】:Create 2d array from a division of two 1d-arrays in arrayfire从arrayfire中的两个一维数组的划分创建二维数组
【发布时间】:2020-03-03 15:44:44
【问题描述】:

我在 arrayfire 中有两个一维数组,xy。我想将它们相互划分,并根据结果创建一个二维数组,即如下代码所示:

#include <arrayfire>

int main(void){

    const size_t x_len = 1024, y_len = 2048;
    af::array x(x_len, f64), y(y_len, f64);
    //Fill x, y with y \neq 0
    //Now either
    af::array xy(x_len, y_len, f64); //Gives a 2d-array
    for(size_t i = 0; i < x.dims(0); ++i)
        for(size_t j = 0; j < y.dims(0); ++j)
            xy(i, j) = x(i) / y(j);
    //or
    af::array xy = x / y; //Gives a 1d-array

    return 0;
}

前一种方法为我提供了目标二维数组,后一种方法没有(如果x_len != y_len 将导致崩溃。我可以使用上面写的方法,但我认为它会比专门的方法慢得多命令。
因此,arrayfire中是否有这样的命令可用,还是我必须使用循环?

【问题讨论】:

    标签: c++ arrays arrayfire


    【解决方案1】:
    af::array xy = matmulNT(x, 1/y);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-27
      • 2017-08-13
      • 1970-01-01
      • 2021-04-28
      • 2023-01-04
      • 2013-07-16
      • 1970-01-01
      相关资源
      最近更新 更多