mxArray структура данныхДля записи C-программ, работающих с MATLAB R2017b или более ранней версии, используйте функции в C Matrix API. Эти функции работают с mxArray и используются для построения функций C MEX или приложений механизма C.
Примечание
MathWorks рекомендует по возможности выбирать приложения C++ over C. Для получения дополнительной информации см. раздел Вызов библиотеки MATLAB из библиотек C++ или C++ в MATLAB для непосредственного вызова функциональности библиотеки C++ из MATLAB.
Существует две версии C Matrix API.
Перемежающийся комплексный API содержит функциональные возможности C Matrix API, как в MATLAB R2018a. Дополнительные сведения см. в разделе Поддержка MATLAB для промежуточного комплексного API в функциях MEX.
Отдельный комплексный API содержит функциональные возможности C Matrix API как в MATLAB R2017b.
Примеры использования этих библиотечных функций см. в разделе:
См., например, отдельные функции. Например, см. mxIsChar.
Внимание
C Matrix API несовместим с MATLAB Data API, который поддерживает современные функции C++. Нельзя использовать функции C Matrix API с функциями в приложениях C++ MEX или MATLAB Engine API для C++.
mxArray | Тип C для массива MATLAB |
mwSize | Тип C для значений размера mxArray |
mwIndex | Тип C для значений индекса mxArray |
mwSignedIndex | Целочисленный тип C со знаком для значений размера mxArray |
mxChar | Тип для строкового массива |
mxLogical | Тип для логического массива |
mxComplexity | Флаг, указывающий, содержит ли массив мнимые компоненты |
mxIsNumeric | Определите, является ли mxArray числовым |
mxIsComplex | Определение сложности данных |
mxGetNumberOfDimensions | Количество измерений в mxArray |
mxGetElementSize | Количество байт, необходимое для хранения каждого элемента данных |
mxGetDimensions | Указатель на массив размеров |
mxSetDimensions | Изменение количества размеров и размера каждого размера |
mxGetNumberOfElements | Количество элементов в числовом массиве mxArray |
mxCalcSingleSubscript | Смещение от первого элемента к требуемому элементу |
mxGetM | Количество строк в mxArray |
mxSetM | Задать количество строк в mxArray |
mxGetN | Количество столбцов в mxArray |
mxSetN | Задать количество столбцов в mxArray |
mxIsEmpty | Определите, пуст ли mxArray |
mxIsFromGlobalWS | Определите, был ли mxArray скопирован из глобальной рабочей области MATLAB |
mxDestroyArray | Свободная динамическая память, выделенная функциями MXCREATE * |
mxDuplicateArray | Создание глубокой копии массива |
mxCalloc | Выделение динамической памяти для массива, инициализированного в 0, с помощью диспетчера памяти MATLAB |
mxMalloc | Выделение неинициализированной динамической памяти с помощью диспетчера памяти MATLAB |
mxRealloc | Перераспределение динамической памяти с помощью диспетчера памяти MATLAB |
mxFree | Свободная динамическая память, выделенная функциями mxCalloc, mxMalloc, mxRealloc, mxArrayToString или mxArrayToUTF8String |
mxIsInf | Определить, является ли ввод бесконечным |
mxIsFinite | Определить, является ли ввод конечным |
mxIsNaN | Определите, является ли ввод NaN (Not-a-Number) |
В этом примере показано, как передавать строки функции MEX, построенной с помощью C Matrix API.
Передача скалярных значений в файле C MEX
В этом примере показано, как записать файл MEX, передающий скалярные значения.
Обработка разреженных массивов в файле C MEX
В этом примере показано, как заполнить разреженную матрицу с помощью C Matrix API.
Обработка данных 8-, 16-, 32- и 64-Bit в файле C MEX
В этом примере показано, как использовать неподписанные 16-битные целые числа в файле MEX с помощью C Matrix API.
Передача структур и массивов ячеек в файле C MEX
В этом примере показано, как передавать структуры и массивы ячеек в MEX-файлы, созданные с помощью C Matrix API.
Управление многомерными числовыми массивами в файлах C MEX
Вы можете управлять многомерными числовыми массивами, используя типизированные функции доступа к данным, такие как mxGetDoubles и mxGetComplexDoubles.