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 массив инициализируется к заданному значению
mxCreateCharArrayN-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
mxGetStringmxChar массив к строке C-стиля или Фортрану character массив
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.