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

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

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

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

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

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

Примечание

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

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

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

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

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

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

Функции

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

MEX API НА C

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-функции

Темы

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

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

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

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

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

Данные MATLAB

Использование mxArray в файлах MEX.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ошибки сборки

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

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

Не удалось скомпилировать файл MEX

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

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

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

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

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

Символ mexFunction неразрешен или не определен

Каждому файлу 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 Platforms.

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

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