从真实和想象数组创建复杂数组

Creating complex array from real and imag arrays

我想创建一个复数的二维矩阵。该矩阵可用作包含实部和虚部的两个不同指针(来自 MATLAB - MEX)。我正在使用 C++ 接口。

我在 API 中看到的最接近的东西是 C 接口,af_cplx2()。

// C Interface for creating complex array from two input arrays.
AFAPI af_err af_cplx2   (   af_array *  out,
const af_array  lhs,
const af_array  rhs,
const bool  batch 
)   

C++ 接口仅获取一个数组并从实际数组创建复数:

// C++ Interface for creating complex array from real array.
AFAPI array af::complex (   const array &   in  )   

如何从两个数组(实部和虚部)创建复数数组?

af::complex 可用于使用两个数组创建复杂数组,例如:

af::array c = af::complex(r, i);    // r,i are of af::array

例如,要在 MEX 文件中从指向实部和虚部的指针创建复数数组:

double *p_real = mxGetPr(mex_array);
double *p_imag = mxGetPi(mex_array);

af::array c = af::complex(af::array(rows,cols,p_real),
                          af::array(rows,cols,p_imag));