Приложения C++ MEX

Создайте высокоэффективные функции MATLAB®, реализованные на современном C++

Используйте API C++ MEX, чтобы создать функции MATLAB, которые обеспечивают КПД программ C++, и это может получить доступ к внешним функциям и библиотекам из MATLAB. API C++ MEX обеспечивает эти функции:

  • Использует современные функции программирования на C++ и объектно-ориентированные проекты.

  • Функции MATLAB вызовов от MEX-функции.

  • Объединяется беспрепятственно в MATLAB, получая входные параметры от и возвращая результаты в MATLAB.

  • Типы данных MATLAB поддержек и семантика копирования при записи.

  • Пишут ориентированные на многопотоковое исполнение многопоточные MEX-функции.

  • Выполняет MEX-функции C++ из процесса.

Примечание

Функции в API C++ MATLAB используют matlab::data::Array класс задан в MATLAB Data API. Если ваши MEX-функции должны запуститься в MATLAB R2017b или ранее, или если вы предпочитаете работать на языке C, то используйте Матричный API C, который работает с mxArray структура данных вместо этого. Для получения дополнительной информации смотрите Вызов MATLAB от C.

Классы C++

matlab::mex::FunctionБазовый класс для MEX-функций C++
matlab::mex::ArgumentListКонтейнер для вводов и выводов от MEX-функций C++

Из выполнения процесса

mexhostСоздайте хост-процесс для MEX-функции C++
fevalОцените MEX-функцию C++ в хост-процессе MEX
matlab.mex.MexHostХост из процесса к выполнению MEX-функции C++

Темы

Начните создавать MEX-функции C++

MEX-функции C++

Файлы MEX реализуют функции MATLAB, написанные в C++.

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

Вот то, как создать основную MEX-функцию C++.

Setup и файлы MEX сборки

Создайте программы C++ MEX

Создайте приложения MEX на других платформах.

Проверка собственной среды сборки

Протестируйте свою среду сборки с предопределенным файлом MEX C++.

API C++ MEX

Используйте C++ 11 функций и Engine API для C++, чтобы реализовать MEX-функции.

Проект MEX-функций C++

Структура MEX-функции C++

Реализуйте класс, который заменяет оператор вызова функции () создать объект функтора.

Избегайте копий массивов в MEX-функциях

Методы, чтобы не делать копии больших массивов, чтобы уменьшать использование памяти и улучшить скорость выполнения.

Управление внешние ресурсы от MEX-функций

Настройте MexFunction класс, чтобы лучше обработать ресурсы, используемые вашей MEX-функцией.

Обработка вводов и выводов

Проверяйте размер и тип входных параметров и отобразите сообщения об ошибке в MATLAB.

Отображение Вывода в окне Команды MATLAB

MEX-функции могут отобразить вывод в окне команды MATLAB.

Создание асинхронных Запросов Используя mexCallMATLAB

Поведение при призывании обратно в MATLAB с async запросите как matlab::engine::MATLABEngine::fevalAsync.

Типы данных MATLAB в MEX-функциях

Доступ к данным во введенном, ячейке и массивах структур

Ячейка и массивы структур позволяют вам записать в содержимое массивов, не копируя целый массив.

Типы данных для передачи данных о MEX-функции

Задайте правильные типы данных, чтобы передать данные между MATLAB и MEX-функциями.

Вызовите функции MATLAB

Вызовите функции MATLAB от MEX-функций

Вызовите функции MATLAB, передающие аргументы от и возвращающиеся аргументы к MEX-функции.

Отловите исключения в MEX-функции

Отловите исключения, добавленные MEX-функция.

Выполните выражения MATLAB от MEX-функции

Выполните выражения MATLAB, чтобы создать переменные в рабочей области вызывающей стороны.

Отдельные потоки и процессы

Вызовите MATLAB от отдельных потоков в MEX-функции

MEX-функции могут вызвать MATLAB от созданных пользователями потоков с помощью Engine C++ асинхронный API.

Выполнение из процесса MEX-функций C++

Выполните MEX-функции C++ в процессах, которые являются отдельными от процесса MATLAB.

Доступ к переменным MATLAB

Установите и получите переменные MATLAB от MEX

Поместите переменные в или получите переменные из основы MATLAB и глобальных рабочих областей.

Объекты MATLAB в MEX-функциях

Передайте объекты MATLAB MEX-функциям.

Сопутствующая информация