Создание сложного массива из реальных и воображаемых массивов

Я хотел бы создать 2D матрицу комплексных чисел. Матрица доступна в виде двух разных указателей, содержащих действительные и мнимые части (исходит от 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  )

Как можно создать сложный массив из двух массивов, действительной и мнимой частей?

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

Другие решения