C матричный API

Напишите программы C/C++, которые работают с MATLAB® mxArray структура данных

Чтобы написать программы C, которые работают с MATLAB R2017b или ранее, используйте функции в Матричном API C. Эти функции работают с mxArray структура данных и используется, чтобы создать MEX-функции C или приложения механизма C.

Примечание

MathWorks рекомендует, чтобы, когда это возможно, выберите приложения C ++ over C. Для получения дополнительной информации смотрите Вызов MATLAB от Библиотек C++ или C++, чтобы непосредственно вызвать функциональность библиотеки C++ из MATLAB.

Существует две версии Матричного API C.

Для примеров с помощью этих библиотечных функций см.:

Внимание

Матричный API C не совместим с MATLAB Data API, который поддерживает современные функции C++. Вы не можете использовать Матричные API-функции C с функциями в Приложениях C++ MEX или MATLAB Engine API для C++.

Типы данных C

mxArrayC вводят для массива MATLAB
mwSizeВведите для значений размера
mwIndexВведите для значений индекса
mwSignedIndexТип целого числа со знаком для значений размера
mxCharВведите для массива строк
mxLogicalВведите для логического массива
mxComplexityОтметьте определение, имеет ли массив мнимые компоненты

Атрибуты mxArray

mxIsNumericОпределите, является ли массив числовым
mxIsComplexОпределите, являются ли данные комплексными
mxGetNumberOfDimensionsКоличество размерностей в массиве
mxGetElementSizeКоличество байтов, требуемых сохранить каждый элемент данных
mxGetDimensionsУказатель на массив размерностей
mxSetDimensionsИзмените количество размерностей и размер каждой размерности
mxGetNumberOfElementsЧисло элементов в числовом массиве
mxCalcSingleSubscriptВозместите от первого элемента до желаемого элемента
mxGetMКоличество строк в массиве
mxSetMОпределите номер строк в массиве
mxGetNКоличество столбцов в массиве
mxSetNОпределите номер столбцов в массиве
mxIsEmptyОпределите, пуст ли массив
mxIsFromGlobalWSОпределите, был ли массив скопирован с глобальной рабочей области MATLAB

Создайте, запросите, и типы Доступа к данным

развернуть все

mxCreateDoubleMatrix2D, массив с плавающей точкой, с двойной точностью
mxCreateDoubleScalarСкаляр, массив с двойной точностью, инициализированный к заданному значению
mxCreateNumericMatrix2D числовая матрица
mxCreateNumericArrayЧисловой массив N-D
mxCreateUninitNumericMatrixДеинициализировал 2D числовую матрицу
mxCreateUninitNumericArrayНеинициализированный числовой массив N-D
mxIsScalarОпределите, является ли массив скалярным массивом
mxGetScalarДействительный компонент элемента First Data в массиве
mxIsDoubleОпределите, представляет ли mxArray данные как с двойной точностью, числа с плавающей запятой
mxGetDoublesДействительные элементы данных в mxDOUBLE_CLASS массиве
mxSetDoublesУстановите действительные элементы данных в mxDOUBLE_CLASS массиве
mxIsSingleОпределите, представляет ли массив данные как с одинарной точностью, числа с плавающей запятой
mxGetSinglesДействительные элементы данных в mxSINGLE_CLASS массиве
mxSetSinglesУстановите действительные элементы данных в mxSINGLE_CLASS массиве
mxGetPr(Не рекомендуемый) Действительные элементы данных в mxDOUBLE_CLASS массиве
mxSetPr(Не рекомендуемый) Набор действительные элементы данных в mxDOUBLE_CLASS массиве
mxIsInt8Определите, представляет ли массив данные как подписанные 8-битные целые числа
mxGetInt8sДействительные элементы данных в mxINT8_CLASS массиве
mxSetInt8sУстановите действительные элементы данных в mxINT8_CLASS массиве
mxIsUint8Определите, представляет ли массив данные как 8-битные целые числа без знака
mxGetUint8sДействительные элементы данных в mxUINT8_CLASS массиве
mxSetUint8sУстановите действительные элементы данных в mxUINT8_CLASS массиве
mxIsInt16Определите, представляет ли массив данные как подписанные 16-битные целые числа
mxGetInt16sДействительные элементы данных в mxINT16_CLASS массиве
mxSetInt16sУстановите действительные элементы данных в mxINT16_CLASS массиве
mxIsUint16Определите, представляет ли массив данные как 16-битные целые числа без знака
mxGetUint16sДействительные элементы данных в mxUINT16_CLASS массиве
mxSetUint16sУстановите действительные элементы данных в mxUINT16_CLASS массиве
mxIsInt32Определите, представляет ли массив данные как подписанные 32-битные целые числа
mxGetInt32sДействительные элементы данных в mxINT32_CLASS массиве
mxSetInt32sУстановите действительные элементы данных в mxINT32_CLASS массиве
mxIsUint32Определите, представляет ли массив данные как 32-битные целые числа без знака
mxGetUint32sДействительные элементы данных в mxUINT32_CLASS массиве
mxSetUint32sУстановите действительные элементы данных в mxUINT32_CLASS массиве
mxIsInt64Определите, представляет ли массив данные как подписанные 64-битные целые числа
mxGetInt64sДействительные элементы данных в mxINT64_CLASS массиве
mxSetInt64sУстановите элементы данных в mxINT64_CLASS массиве
mxIsUint64Определите, представляет ли массив данные как 64-битные целые числа без знака
mxGetUint64sДействительные элементы данных в mxUINT64_CLASS массиве
mxSetUint64sУстановите действительные элементы данных в mxUINT64_CLASS массиве
mxGetComplexDoublesЭлементы комплексных данных в mxDOUBLE_CLASS массиве
mxSetComplexDoublesУстановите элементы комплексных данных в mxDOUBLE_CLASS массиве
mxGetComplexSinglesЭлементы комплексных данных в mxSINGLE_CLASS массиве
mxSetComplexSinglesУстановите элементы комплексных данных в mxSINGLE_CLASS массиве
mxGetImagDataЭлементы мнимых данных в числовой mxArray
mxSetImagDataУстановите элементы мнимых данных в числовой mxArray
mxGetPi(Не рекомендуемый) элементы Мнимых данных в mxDOUBLE_CLASS массиве
mxSetPi(Не рекомендуемый) элементы мнимых данных Набора в mxDOUBLE_CLASS массиве
mxGetComplexInt8sЭлементы комплексных данных в mxINT8_CLASS массиве
mxSetComplexInt8sУстановите элементы комплексных данных в mxINT8_CLASS массиве
mxGetComplexUint8sЭлементы комплексных данных в mxUINT8_CLASS массиве
mxSetComplexUint8sУстановите элементы комплексных данных в mxUINT8_CLASS массиве
mxGetComplexInt16sЭлементы комплексных данных в mxINT16_CLASS массиве
mxSetComplexInt16sУстановите элементы комплексных данных в mxINT16_CLASS массиве
mxGetComplexUint16sЭлементы комплексных данных в mxUINT16_CLASS массиве
mxSetComplexUint16sУстановите элементы комплексных данных в mxUINT16_CLASS массиве
mxGetComplexInt32sЭлементы комплексных данных в mxINT32_CLASS массиве
mxSetComplexInt32sУстановите элементы комплексных данных в mxINT32_CLASS массиве
mxGetComplexUint32sЭлементы комплексных данных в mxUINT32_CLASS массиве
mxSetComplexUint32sУстановите элементы комплексных данных в mxUINT32_CLASS массиве
mxGetComplexInt64sЭлементы комплексных данных в mxINT64_CLASS массиве
mxSetComplexInt64sУстановите элементы комплексных данных в mxINT64_CLASS массиве
mxGetComplexUint64sЭлементы комплексных данных в mxUINT64_CLASS массиве
mxSetComplexUint64sУстановите элементы комплексных данных в mxUINT64_CLASS массиве
mxGetPi(Не рекомендуемый) элементы Мнимых данных в mxDOUBLE_CLASS массиве
mxSetPi(Не рекомендуемый) элементы мнимых данных Набора в mxDOUBLE_CLASS массиве
mxCreateSparse2D разреженный массив
mxCreateSparseLogicalMatrix2D, разреженный, логический массив
mxIsSparseОпределите, является ли введенный разреженным массивом
mxGetNzmaxЧисло элементов в IR, PR и массивах PI
mxSetNzmaxУстановите пространство памяти для ненулевых элементов
mxGetIrМассив ir разреженной матрицы
mxSetIrМассив ir разреженного массива
mxGetJcМассив jc разреженной матрицы
mxSetJcМассив jc разреженного массива
mxGetDataЭлементы данных в нечисловой mxArray
mxSetDataУстановите указатель на элементы данных в нечисловой mxArray
mxCreateStringМассив 1-N инициализируется к заданной строке
mxCreateCharMatrixFromStrings2D mxChar массив инициализируется к заданному значению
mxCreateCharArrayМассив N-D mxChar
mxIsCharОпределите, является ли введенный mxChar массивом
mxGetCharsУказатель на данные о символьном массиве
mxIsLogicalОпределите, имеет ли массив тип mxLogical
mxIsLogicalScalarОпределите, имеет ли скалярный массив тип mxLogical
mxIsLogicalScalarTrueОпределите, верен ли скалярный массив типа mxLogical
mxClassIDКласс идентификации перечисляемого значения массива
mxCreateLogicalArrayЛогический массив N-D
mxCreateLogicalMatrix2D логический массив
mxCreateLogicalScalarСкаляр, логический массив
mxGetLogicalsУказатель на данные о логическом массиве
mxIsClassОпределите, является ли массив объектом заданного класса
mxGetClassIDКласс массива
mxGetClassNameКласс массива как строка
mxSetClassNameМассив структур к объектному массиву MATLAB
mxGetPropertyЗначение общественной собственности объекта MATLAB
mxSetPropertyУстановите значение общественной собственности объекта MATLAB
mxCreateStructMatrix2D массив структур
mxCreateStructArrayМассив структур N-D
mxIsStructОпределите, является ли введенный массивом структур
mxGetFieldУказатель на значение поля из массива структур, учитывая индекс и имя поля
mxSetFieldУстановите значение поля в массиве структур, учитывая индекс и имя поля
mxGetNumberOfFieldsКоличество полей в массиве структур
mxGetFieldNameByNumberУказатель на имя поля из массива структур, учитывая полевой номер
mxGetFieldNumberПолевой номер из массива структур, учитывая имя поля
mxGetFieldByNumberУказатель на значение поля из массива структур, учитывая индекс и полевой номер
mxSetFieldByNumberУстановите значение поля в массиве структур, учитывая полевой номер и индекс
mxAddFieldДобавьте поле в массив структур
mxRemoveFieldУдалите поле из массива структур
mxCreateCellMatrix2D массив ячеек
mxCreateCellArrayМассив ячеек N-D
mxIsCellОпределите, является ли введенный массивом ячеек
mxGetCellУказатель на элемент в массиве ячеек
mxSetCellУстановите содержимое массива ячеек

Удалите и Дублирующаяся mxArray

mxDestroyArrayСвободная динамическая память, выделенная MXCREATE* функции
mxDuplicateArrayСделайте глубокую копию массива

Преобразуйте mxArray

развернуть все

mxMakeArrayComplexПреобразуйте действительную mxArray, чтобы объединить, сохранив действительные данные
mxMakeArrayRealПреобразуйте комплексную mxArray в действительные, сохраняющие действительные данные
mxArrayToStringМассив, чтобы представить в виде строки
mxArrayToUTF8StringМассив, чтобы представить в виде строки в кодировании UTF-8
mxGetStringмассив mxChar к строке C-стиля или символьному массиву Фортрана
mxSetClassNameМассив структур к объектному массиву MATLAB

Управление памятью данных

mxCallocВыделите динамическую память для массива, инициализированного к 0, с помощью диспетчера памяти MATLAB
mxMallocВыделите неинициализированную динамическую память с помощью диспетчера памяти MATLAB
mxReallocПерераспределите динамическую память с помощью диспетчера памяти MATLAB
mxFreeСвободная динамическая память выделяется mxCalloc, mxMalloc, mxRealloc, mxArrayToString, или функциями mxArrayToUTF8String

Утверждает

mxAssertПроверяйте значение утверждения на отладку целей
mxAssertSПроверяйте значение утверждения, не распечатывая текст утверждения

Константы

mxIsInfОпределите, бесконечно ли введенный
mxIsFiniteОпределите, конечно ли введенный
mxIsNaNОпределите, является ли введенный NaN (Не число)

Темы

Передача строк в Файле MEX на C

В этом примере показано, как передать строки MEX-функции, созданной с Матричным API C.

Передача скалярных величин в Файле MEX на C

В этом примере показано, как записать файл MEX, который передает скалярные значения.

Обработайте разреженные массивы в Файле MEX на C

В этом примере показано, как заполнить разреженную матрицу с помощью Матричного API C.

Обработайте 8-, 16-, 32-, и 64-битные данные в Файле MEX на C

В этом примере показано, как использовать 16-битные целые числа без знака в файле MEX с помощью Матричного API C.

Передача структур и Массивы ячеек в Файле MEX на C

В этом примере показано, как передать структуры и массивы ячеек к файлам MEX, созданным с Матричным API C.

Управляйте многомерными числовыми массивами в Файлах MEX на C

Можно управлять многомерными числовыми массивами при помощи введенных функций доступа к данным как mxGetDoubles и mxGetComplexDoubles.