【发布时间】:2020-03-03 15:44:44
【问题描述】:
我在 arrayfire 中有两个一维数组,x 和 y。我想将它们相互划分,并根据结果创建一个二维数组,即如下代码所示:
#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中是否有这样的命令可用,还是我必须使用循环?
【问题讨论】: