0

複素数の 2D 行列を作成したいと思います。行列は、実部と虚部を含む 2 つの異なるポインターとして使用できます (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++ インターフェイスは配列を 1 つだけ取得し、実数配列から複素数を作成します。

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

実部と虚部の 2 つの配列から複雑な配列を作成するにはどうすればよいでしょうか?

4

1 に答える 1

0

af::complex を使用すると、次のように 2 つの配列を使用して複雑な配列を作成できます。

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));
于 2015-07-07T14:18:48.687 に答える