Введение в Engine API для C++

MATLAB® Engine API для C++ позволяет программам C++ взаимодействовать с MATLAB синхронно или асинхронно. Поддерживаемые операции включают:

  • StartMatlab.

  • Соединитесь с сеансом совместной работы MATLAB на локальной машине.

  • Вызовите функции MATLAB с входными параметрами, переданными с C++ и выходных переменных, возвращенных в MATLAB.

  • Оцените выражения MATLAB в базовом рабочем пространстве MATLAB.

  • Передайте переменные от C++ до MATLAB и от MATLAB до C++.

MATLAB Engine API для C++ включен в продукт MATLAB. Для полного API см. Engine API для C++.

Начало работы

MATLAB Engine API для C++ включает набор заголовочных файлов C++, и время выполнения C совместно использовало библиотеки. Пространство имен matlab::engine содержит несколько служебных функций и набор классов C++.

Начните использовать MATLAB Engine API для C++ путем подготовки среды сборки и среды выполнения. Гарантируйте, что вам установили поддерживаемый компилятор. Используйте команду mex MATLAB, чтобы установить вашу среду и создать приложения C++. Можно также сконфигурировать IDE, чтобы создать приложения C++, которые используют Engine API. Для получения информации о том, как сделать это, смотрите Сборку Программы Engine C++.

Engine API поддерживает использование MATLAB Data API. Этот API обеспечивает путь к приложениям, запускающимся за пределами MATLAB, чтобы работать с данными MATLAB. Для получения дополнительной информации об этом API см. MATLAB Data API.

Базовые элементы программ Engine C++

Вот некоторый простой код двигателя C++, показывающий, что базовые элементы раньше выполняли команду MATLAB. Этот код передает вектор массивов данных к функции MATLAB, movsum, и возвращает результат. Этот Код С++ выполняет эквивалент этих операторов в MATLAB.

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movsum(A,3,'Endpoints','discard');

Базовые элементы кода двигателя C++

Добавьте заголовочные файлы для массивов данных MATLAB и движка MATLAB.

#include "MatlabEngine.hpp"
#include "MatlabDataArray.hpp"

Запустите сеанс работы с MATLAB и получите уникальный указатель на экземпляр.

std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();

Создайте фабрику массива данных MATLAB, чтобы создать типы данных, используемые функциями членства matlab::engine::MATLABEngine.

matlab::data::ArrayFactory factory;

Задайте вектор массивов данных MATLAB для входных параметров к функции MATLAB. Каждый аргумент является массивом в векторе.

// Create a vector of MATLAB data arrays for arguments    
std::vector<matlab::data::Array> args({
    factory.createArray<double>({ 1, 10 }, { 4, 8, 6, -1, -2, -3, -1, 3, 4, 5 }),
    factory.createScalar<int32_t>(3),
    factory.createCharArray("Endpoints"),
    factory.createCharArray("discard")
});

Вызовите функцию movsum MATLAB использование функции членства MATLABEngine::feval . Задайте возвращенный результат как массив данных MATLAB соответствующего типа.

// Call MATLAB function with arguments and return results
matlab::data::TypedArray<double> result = matlabPtr->feval(u"movsum", args);

Смотрите также

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте