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