Приложения файла MEX на C

Напишите программы C, которые работают с MATLAB® R2017b или ранее, с помощью mxArray

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

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

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

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

Примечание

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

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

Для получения информации о записи S-функций смотрите свой Simulink® документация.

Чтобы вызвать MEX-функцию, которую кто-то еще создал, смотрите Функции файла MEX.

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

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

Функции

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

C API MEX

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

Темы

Запишите MEX-функции C

Создание исходного файла MEX на C

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

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

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

Matlab::data

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

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

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

Создайте MEX-функции C++ с матричным API C

Язык C++ выходит, чтобы рассмотреть при создании MEX-функций, созданных с Матричным API C.

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

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

Обработка ввода-вывода Большого файла в файлах MEX

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

Тестирование на больше-всего-производный-класс

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

Совместное использование файлов MEX

Информация о сборке документа в файле MEX

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

Поиск и устранение проблем

Создайте ошибки

Получение справки, когда MEX перестал работать

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

Компиляция сбоев файла MEX

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

Несовместимости API Поиска и устранения проблем MEX

Больше информации для предупреждений и сообщений об ошибке.

Поиск и устранение проблем и Ограничения при компиляции Файлы MEX C/C++ с MinGW-w64

Поиск и устранение проблем файлов MEX создается с компилятором MinGW-w64.

Символ mexFunction Неразрешенный или Не Заданный

Каждый файл MEX нуждается в mexFunction.

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

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

Что сделать, когда вы получаете недопустимую ошибку файла MEX.

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

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

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

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

API MEX не Ориентирован на многопотоковое исполнение

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

Отказ сегментации файла MEX

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

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

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

Отладка

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

Предложения для отладки с Microsoft Visual Studio®.

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

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

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

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