C матричный API

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

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

Примечание

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

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

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

Внимание

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

Типы данных C

mxArrayC вводят для массива MATLAB
mwSizeC вводят для значений размера mxArray
mwIndexC вводят для значений индекса mxArray
mwSignedIndexЦелое число со знаком C вводит для значений размера mxArray
mxCharВведите для массива строк
mxLogicalВведите для логического массива
mxComplexityОтметьте определение, имеет ли массив мнимые компоненты

Атрибуты mxArray

mxIsNumericОпределите, является ли mxArray числовой
mxIsComplexОпределите, являются ли данные комплексными
mxGetNumberOfDimensionsКоличество размерностей в mxArray
mxGetElementSizeКоличество байтов, требуемых сохранить каждый элемент данных
mxGetDimensionsУказатель на массив размерностей
mxSetDimensionsИзмените количество размерностей и размер каждой размерности
mxGetNumberOfElementsЧисло элементов в числовой mxArray
mxCalcSingleSubscriptВозместите от первого элемента до желаемого элемента
mxGetMКоличество строк в mxArray
mxSetMОпределите номер строк в mxArray
mxGetNКоличество столбцов в mxArray
mxSetNОпределите номер столбцов в mxArray
mxIsEmptyОпределите, пуста ли mxArray
mxIsFromGlobalWSОпределите, была ли mxArray скопирована с глобальной рабочей области 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Определите, представляет ли mxArray данные как с одинарной точностью, числа с плавающей запятой
mxGetSinglesДействительные элементы данных в mxSINGLE_CLASS массив
mxSetSinglesУстановите действительные элементы данных в mxSINGLE_CLASS массив
mxGetPr(Не рекомендуемый) Действительные элементы данных в mxDOUBLE_CLASS массив
mxSetPr(Не рекомендуемый) Набор действительные элементы данных в mxDOUBLE_CLASS массив
mxIsInt8Определите, представляет ли mxArray данные как подписанные 8-битные целые числа
mxGetInt8sДействительные элементы данных в mxINT8_CLASS массив
mxSetInt8sУстановите действительные элементы данных в mxINT8_CLASS массив
mxIsUint8Определите, представляет ли mxArray данные как 8-битные целые числа без знака
mxGetUint8sДействительные элементы данных в mxUINT8_CLASS массив
mxSetUint8sУстановите действительные элементы данных в mxUINT8_CLASS массив
mxIsInt16Определите, представляет ли mxArray данные как подписанные 16-битные целые числа
mxGetInt16sДействительные элементы данных в mxINT16_CLASS массив
mxSetInt16sУстановите действительные элементы данных в mxINT16_CLASS массив
mxIsUint16Определите, представляет ли mxArray данные как 16-битные целые числа без знака
mxGetUint16sДействительные элементы данных в mxUINT16_CLASS массив
mxSetUint16sУстановите действительные элементы данных в mxUINT16_CLASS массив
mxIsInt32Определите, представляет ли mxArray данные как подписанные 32-битные целые числа
mxGetInt32sДействительные элементы данных в mxINT32_CLASS массив
mxSetInt32sУстановите действительные элементы данных в mxINT32_CLASS массив
mxIsUint32Определите, представляет ли mxArray данные как 32-битные целые числа без знака
mxGetUint32sДействительные элементы данных в mxUINT32_CLASS массив
mxSetUint32sУстановите действительные элементы данных в mxUINT32_CLASS массив
mxIsInt64Определите, представляет ли mxArray данные как подписанные 64-битные целые числа
mxGetInt64sДействительные элементы данных в mxINT64_CLASS массив
mxSetInt64sУстановите элементы данных в mxINT64_CLASS массив
mxIsUint64Определите, представляет ли mxArray данные как 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Определите, является ли введенный разреженной mxArray
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Определите, имеет ли mxArray тип mxLogical
mxIsLogicalScalarОпределите, имеет ли скалярный массив тип mxLogical
mxIsLogicalScalarTrueОпределите, верен ли скалярный массив типа mxLogical
mxClassIDКласс идентификации перечисляемого значения массива
mxCreateLogicalArrayЛогический массив N-D
mxCreateLogicalMatrix2D логический массив
mxCreateLogicalScalarСкаляр, логический массив
mxGetLogicalsУказатель на данные о логическом массиве
mxIsClassОпределите, является ли mxArray объектом заданного класса
mxGetClassIDКласс mxArray
mxGetClassNameКласс mxArray как строка
mxSetClassNameМассив структур к объектному массиву MATLAB
mxGetPropertyЗначение общественной собственности объекта MATLAB
mxSetPropertyУстановите значение общественной собственности объекта MATLAB
mxCreateStructMatrix2D массив структур
mxCreateStructArrayМассив структур N-D
mxIsStructОпределите, является ли mxArray структурой
mxGetFieldУказатель на значение поля из массива структур, учитывая индекс и имя поля
mxSetFieldУстановите значение поля в массиве структур, учитывая индекс и имя поля
mxGetNumberOfFieldsКоличество полей в массиве структур
mxGetFieldNameByNumberУказатель на имя поля из массива структур, учитывая полевой номер
mxGetFieldNumberПолевой номер из массива структур, учитывая имя поля
mxGetFieldByNumberУказатель на значение поля из массива структур, учитывая индекс и полевой номер
mxSetFieldByNumberУстановите значение поля в массиве структур, учитывая полевой номер и индекс
mxAddFieldДобавьте поле в массив структур
mxRemoveFieldУдалите поле из массива структур
mxCreateCellMatrix2D массив ячеек
mxCreateCellArrayМассив ячеек N-D
mxIsCellОпределите, является ли mxArray массивом ячеек
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.