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