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