Установите комплексные данные элементы в mxDOUBLE_CLASS массив
#include "matrix.h" int mxSetComplexDoubles(mxArray *pa, mxComplexDouble *dt);
Использовать mxSetComplexDoubles для установки mxComplexDouble данные в указанном массиве.
Все mxCreate* функции выделяют пространство в куче для хранения данных. Поэтому вы обычно не используете эту функцию для инициализации элементов массива. Скорее вызовите функцию, чтобы заменить существующие значения новыми значениями.
Обратитесь к arrayFillSetPr.c пример в папка, которая копирует существующие данные в matlabroot/ extern/examples/refbookmxArray. Данные в примере определяются как mxDouble. Можно использовать этот пример как шаблон для любого числового типа C, включая сложный. Предположим, что у вас есть массив с этими значениями.
2.0 + 3.0i 3.0 + 4.0i
Чтобы изменить этот пример для сложных mxDouble данные:
Объявить переменные данных
mxComplexDouble *dynamicData;
const mxComplexDouble data[] = {{2.0, 3.0}, {3.0, 4.0}};Звонить mxCreateNumericMatrix с mxCOMPLEX аргумент
Заменить mxSetDoubles с mxSetComplexDoubles поместить массив C в mxArray
Эта функция доступна в перемеженном комплексном API. Как создать myMexFile.c используя эту функцию, введите:
mex -R2018a myMexFile.c