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-файла.
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
В этом примере показано, как создать arrayProduct
C MEX-функцией построен с помощью API на C Matrix.
Таблицы примеров исходного кода MEX-функций
Ссылки на исходный код для примеров MEX-функций.
Использование mxArray
в файлах MEX.
Правила управления mxArray
память.
Создайте MEX-функции C++ с C Matrix API
Проблемы языка C++, которые следует учитывать при создании MEX-функций, созданных с помощью API на C Matrix.
Обработка ошибок в файлах MEX на C
Печать информации об ошибке с помощью mexErrMsgIdAndTxt
функция.
Обработка больших файловых вводов-выводов в файлах MEX
Как использовать 64-битный файл ввода-вывода в файле MEX.
Проверка для наиболее производного класса
Как исключить подклассы встроенных типов из входных параметров файла MEX.
В этом примере показано, как создать пример функции MEX arrayProduct
.
Обновите файлы MEX, чтобы использовать перемеженный комплексный API
MATLAB Version 9.4 (R2018a) поддерживает чередующееся представление комплексных чисел.
Обновите файлы MEX, чтобы использовать 64-Bit API
MATLAB Version 9.2 (R2017a) создает файлы MEX с 64-битным API по умолчанию.
Обновите файлы MEX, чтобы использовать графические объекты
MATLAB Version 8.4 (R2014b) изменяет тип данных указателей на графические объекты из double
к объекту.
Информация о сборке документов в файле 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, созданные с помощью версии MATLAB.
Если вы получите двоичный файл MEX из другого источника, убедитесь, что файл был скомпилирован для той же платформы, на которой вы хотите запустить его.
MEX API не безопасен для потоков
Не вызывайте ни один сеанс MATLAB в отдельных потоках из файла MEX.
Что делать, когда файл MEX вызывает нарушение сегментации или утверждение.
Файл MEX генерирует неправильные результаты
Что делать, когда ваш MEX генерирует неправильные ответы.
Отладка на платформах Microsoft Windows
Предложения по отладке с помощью Microsoft Visual Studio®.
В этом примере показано, как отлаживать файл MEX на Mac Platforms.
В этом примере показано, как отладить файл MEX в Linux® Платформы.