从real和imag数组创建复杂数组

时间:2015-07-07 08:32:46

标签: c++ arrayfire

我想创建一个复数的二维矩阵。矩阵可作为两个不同的指针,包含实部和虚部(来自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  )   

如何从两个数组创建复杂数组,即实部和虚部?

1 个答案:

答案 0 :(得分:0)

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));