exponenta event banner

Интеграция MATLAB с внешними языками и системами программирования

MATLAB ® обеспечивает гибкую двустороннюю интеграцию с другими языками программирования, позволяя повторно использовать устаревший код. Список языков программирования и поддерживаемых версий см. в разделе Поддерживаемые интерфейсы MATLAB к другим языкам.

Вызов кода C/C + + из MATLAB

MATLAB предоставляет эти функции для интеграции алгоритмов C/C + + в приложения MATLAB.

  • Интерфейс общей библиотеки C/C + + - это набор функций, динамически загружаемых приложением во время выполнения. Использование общей библиотеки имеет преимущество, заключающееся в объединении нескольких библиотечных функций в один интерфейс. Кроме того, MATLAB управляет преобразованиями типов данных.

    • Вызов функций библиотеки C++ - для вызова функций в общей библиотеке C++ используйте clib пакет, описанный в библиотеке C++ в MATLAB.

    • По возможности выберите интерфейс C++ над интерфейсом C-only. Для получения информации о поддержке C++ см. эти ограничения.

    • Для вызова функций в общей библиотеке C используйте calllib функция. Дополнительные сведения см. в разделе Библиотеки C в MATLAB. Эта функция лучше всего подходит только для библиотек C, но имеет эти ограничения.

    Если требуется больше контроля над преобразованием данных и управлением памятью, попробуйте записать файл MEX.

  • Файл MEX представляет собой обертку кода вокруг алгоритма C/C + +, который обрабатывает преобразование типов данных MATLAB в типы C. Файлы MEX обеспечивают более высокую производительность, чем функции вызова через интерфейсы общей библиотеки MATLAB. Кроме того, MEX-файлы обеспечивают более программный контроль над преобразованием данных и управлением памятью.

    • Приложения C++ MEX используют современные функции программирования C++ и, по возможности, совместно используемые копии данных.

    • Файловые приложения C MEX используют API C Matrix и поддерживаются для существующих функций MEX. MathWorks рекомендует по возможности выбирать приложения для файлов C++ MEX вместо C MEX. Однако если функции MEX должны выполняться в MATLAB R2017b или ранее, запишите функции MEX в библиотеку матрицы C.

    • При наличии нескольких функций в библиотеке или отсутствии проблем с производительностью рекомендуется написать интерфейс библиотеки C++.

Эти функции требуют навыков программирования C/C + + для создания библиотечного интерфейса или записи функции MEX. Однако результирующую библиотеку или функцию MEX можно передать любому пользователю MATLAB. Конечный пользователь вызывает функциональные возможности, как и любую функцию MATLAB, не зная основных деталей реализации языка C/C + +.

Для вызова MATLAB из языковой программы C/C + + см. API MATLAB Engine для C++ или API MATLAB Engine для C.

Использование объектов из других языков программирования в MATLAB

При наличии функций и объектов на другом языке программирования их можно вызвать из MATLAB. Для интеграции этих объектов в приложение MATLAB не требуется быть разработчиком программного обеспечения. Однако для библиотек необходим доступ к сторонней документации.

MATLAB поддерживает вызов функций и использование объектов на следующих языках.

Вызов MATLAB с другого языка программирования

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

Чтобы создать приложение ядра, установите поддерживаемый MATLAB компилятор и используйте mex для построения приложения.

Вызов функций как функций MATLAB

Можно написать собственные функции и вызвать их как функции MATLAB с помощью API MEX. Дополнительные сведения см. в разделе Выбор приложений MEX. Функции MEX можно писать на следующих языках.

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

Взаимодействие с веб-службами

С веб-службами можно взаимодействовать из MATLAB.

  • Функции веб-сервисов MATLAB RESTful позволяют непрограммистам получать доступ ко многим веб-сервисам с помощью методов HTTP GET и POST.

  • Для функциональности, не поддерживаемой функциями веб-служб RESTful, используйте классы интерфейса HTTP для записи настраиваемых приложений веб-доступа.

  • Если веб-служба основана на технологиях документов языка описания веб-служб (WSDL), используйте функции MATLAB WSDL.

Связанные темы

Внешние веб-сайты