Установка сложных элементов данных в 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