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

Я хотел бы создать 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  )   

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

1 ответ

Решение

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));
Другие вопросы по тегам