exponenta event banner

Файловые приложения C MEX

Пишите программы C, которые работают с MATLAB ® R2017b или более ранней версии, используяmxArray

Можно вызвать собственные программы C или C++ из командной строки MATLAB, как если бы они были встроенными функциями. Эти программы называются функциями MEX, а имя функции - именем файла MEX. Функции MEX подходят не для всех приложений. MATLAB - это высокопроизводительная среда, специализация которой заключается в устранении трудоемкого и низкоуровневого программирования на компилируемых языках. В общем, выполняйте программирование в MATLAB. Не используйте функции MEX, если этого не требует приложение.

Чтобы создать функцию MEX, напишите свои программы с помощью API MATLAB. Функции этих библиотек упрощают передачу данных между функциями MEX и рабочей областью. Чтобы выбрать API MATLAB, рассмотрим следующее.

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

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

Примечание

Выберите функции из C Matrix API или MATLAB Data API; нельзя смешивать функции из этих API.

Создайте исходный файл в исполняемую программу с помощью mex функция. Можно также предоставить общий доступ к файлу MEX другим пользователям MATLAB.

Сведения о написании S-функций см. в документации Simulink ®.

Для вызова функции MEX, созданной другим пользователем, см. раздел Функции файлов MEX.

Если имеется программа C/C + + и требуется вызвать функции MATLAB из программы, то используйте один из API механизма.

Если требуется считывать и записывать данные MATLAB из программ C/C + +, используйте API MATLAB C для чтения данных MAT-файла.

Функции

mexСоздание функции MEX или приложения модуля
dbmexВключить отладку файлов MEX на платформах UNIX

C MEX API

mexFunctionТочка входа в функцию C/C + + MEX, построенную с помощью C Matrix API
mexFunctionNameИмя текущей функции MEX
mexAtExitРегистрация функции для вызова при сбросе функции MEX или завершении MATLAB
mexCallMATLABВызов функции MATLAB, определяемой пользователем функции или функции MEX
mexCallMATLABWithTrapВызов функции MATLAB, определяемой пользователем функции или файла MEX и сбор информации об ошибках
mexEvalStringВыполнение команды MATLAB в рабочем пространстве вызывающего абонента
mexEvalStringWithTrapВыполнение команды MATLAB в рабочей области вызывающего абонента и сбор информации об ошибках
mexGetVariableКопирование переменной из указанной рабочей области
mexGetVariablePtrУказатель только для чтения на переменную из другой рабочей области
mexPutVariableМассив из функции MEX в указанную рабочую область
mexGetЗначение указанного графического свойства
mexSetЗадать значение указанного графического свойства
mexPrintfПодпрограмма вывода в формате ANSI C PRINTF
mexErrMsgIdAndTxtВывод сообщения об ошибке с идентификатором и возврат к подсказке MATLAB
mexWarnMsgIdAndTxtПредупреждающее сообщение с идентификатором
mexIsLockedОпределите, заблокирован ли файл MEX
mexLockЗапретить удаление MEX-файла из памяти
mexUnlockРазрешить удаление MEX-файла из памяти
mexMakeArrayPersistentСохранение массива после завершения работы MEX-файла
mexMakeMemoryPersistentСохранение памяти, выделенной MATLAB, после завершения функции MEX

Темы

Запись функций C MEX

Создать файл C Source MEX

В этом примере показано, как создать arrayProduct Функция C MEX, построенная с помощью C Matrix API.

Таблицы примеров исходного кода функции MEX

Ссылки на исходный код для примеров функций MEX.

Данные MATLAB

Используя mxArray в MEX-файлах.

Проблемы управления памятью

Правила управления mxArray память.

Создание функций C++ MEX с помощью C Matrix API

Проблемы языка C++, которые необходимо учитывать при создании функций MEX, построенных с помощью C Matrix API.

Обработка ошибок в файлах C MEX

Печать информации об ошибках с помощью mexErrMsgIdAndTxt функция.

Обработка операций ввода-вывода больших файлов в файлах MEX

Как использовать 64-разрядный файл ввода-вывода в файле MEX.

Тестирование для наиболее производного класса

Как исключить подклассы встроенных типов из входных аргументов файла MEX.

Общий доступ к файлам MEX

Сведения о построении документов в файле MEX

В этом примере показано, как документировать xtimesy Файл MEX, созданный на платформе Windows ® с помощью компилятора Microsoft ® Visual C++ ®.

Поиск неисправностей

Ошибки построения

Получение справки при сбое MEX

Чтобы помочь диагностировать ошибки настройки и построения компилятора, вызовите mex функция с подробным параметром -v.

Сбой компиляции MEX-файла

Что делать при сбое компиляции MEX-файла.

Устранение неполадок несовместимости MEX API

Дополнительные сведения о предупреждениях и сообщениях об ошибках.

Устранение неполадок и ограничения при компиляции файлов C/C + + MEX с MinGW-w64

Устранение неполадок MEX-файлов, созданных с помощью компилятора MinGW-w64.

Символ mexФункция неразрешена или не определена

Каждому файлу MEX требуется mexFunction.

Ошибки среды выполнения

Недопустимые ошибки файла MEX

Что делать при получении недопустимой ошибки файла MEX.

Совместимость версий MEX

Для получения наилучших результатов запустите MEX-файлы, созданные с использованием версии MATLAB.

Совместимость платформ MEX

Если двоичный файл MEX получен из другого источника, убедитесь, что файл был скомпилирован для той же платформы, на которой его нужно запустить.

Интерфейс MEX API не безопасен для потоков

Не вызывайте один сеанс MATLAB для отдельных потоков из файла MEX.

Ошибка сегментации файлов MEX

Что делать, когда MEX-файл вызывает нарушение сегментации или утверждение.

Файл MEX генерирует неверные результаты

Что делать, когда MEX генерирует неправильные ответы.

Отладка

Отладка на платформах Microsoft Windows

Рекомендации по отладке с помощью Microsoft Visual Studio ®.

Отладка на платформах Mac

В этом примере показано, как отладить файл MEX на платформах Mac.

Отладка на платформах Linux

В этом примере показано, как отладить файл MEX на платформах Linux ®.