Используйте API C++ MEX для создания функций MATLAB, которые обеспечивают эффективность программ C++ и которые могут получать доступ к внешним функциям и библиотекам из MATLAB. API C++ MEX предоставляет следующие возможности:
Использует современные функции программирования C++ и объектно-ориентированные конструкции.
Вызывает функции MATLAB из функции MEX.
Легко интегрируется в MATLAB, получая входные данные и возвращая результаты в MATLAB.
Поддерживает типы данных MATLAB и семантику копирования при записи.
Запись многопоточных функций MEX, защищенных от потоков.
Выполняет функции C++ MEX вне процесса.
Примечание
Функции в API MATLAB C++ используют matlab::data::Array класс, определенный в API данных MATLAB. Если функции MEX должны выполняться в MATLAB R2017b или ранее, или если вы предпочитаете работать на языке C, то используйте API C Matrix, который работает с mxArray вместо этого структура данных. Для получения дополнительной информации см. Вызов MATLAB из C.
Файлы MEX реализуют функции MATLAB, написанные на языке C++.
Создание исходного файла C++ MEX
Вот как создать базовую функцию C++ MEX.
Создавайте приложения MEX на различных платформах.
Протестируйте среду сборки с помощью предварительно определенного файла C++ MEX.
Используйте функции C++ 11 и C++ Engine API для реализации функций MEX.
Реализация класса, который переопределяет оператор вызова функции () для создания объекта функтора.
Избегайте копий массивов в функциях MEX
Методы предотвращения создания копий больших массивов для сокращения использования памяти и повышения скорости выполнения.
Управление внешними ресурсами из функций MEX
Настройка MexFunction для лучшей обработки ресурсов, используемых функцией MEX.
Проверьте размер и тип входов и просмотрите сообщения об ошибках в MATLAB.
Отображение выходных данных в окне команд MATLAB
Функции MEX могут выводиться в окне команд MATLAB.
Выполнение асинхронных запросов с помощью mexCallMATLAB
Поведение при обратном вызове MATLAB с помощью async запрос, как matlab::engine::MATLABEngine::fevalAsync.
Доступ к данным в типизированных, сотовых и структурных массивах
Массивы ячеек и структур позволяют записывать содержимое массива без копирования всего массива.
Типы данных для передачи данных функции MEX
Определите правильные типы данных для передачи данных между функциями MATLAB и MEX.
Вызов функций MATLAB из функций MEX
Вызовите функции MATLAB, передавая аргументы из и возвращая аргументы функции MEX.
Исключения захвата в функции MEX
Исключения catch в функции MEX.
Выполнение инструкций MATLAB из функции MEX
Выполните инструкции MATLAB для создания переменных в рабочей области вызывающего абонента.
Вызов MATLAB из отдельных потоков в функции MEX
Функции MEX могут вызывать MATLAB из пользовательских потоков с помощью асинхронного API C++ Engine.
Внепроцессное выполнение функций C++ MEX
Выполните функции C++ MEX в процессах, которые отделены от процесса MATLAB.
Установка и получение переменных MATLAB из MEX
Поместите переменные в или получите переменные из базы MATLAB и глобальных рабочих областей.
Передача объектов MATLAB в функции MEX.
Использование функций MEX для методов классов MATLAB
Для реализации методов для классов MATLAB можно использовать функции MEX.