exponenta event banner

Запись кода драйвера C++ с помощью API массива данных C++ MATLAB

Базовый рабочий процесс для использования общего интерфейса для общих библиотек C++ выглядит следующим образом:

  • Вызов свободной функции initMATLABApplication, который необязательно принимает вектор параметров времени выполнения, таких как -nojvm и -logfile. Функция возвращает shared_ptr.

  • Инициализация matlab::data::ArrayFactory, который используется для производства matlab::data::Array объекты, передаваемые в вызовы функций.

  • Для каждой инициализируемой библиотеки вызовите initMATLABLibrary, который принимает два параметра:

    • Копия shared_ptr которая была возвращена initMATLABApplication

    • Путь к архиву (.ctf файл)

  • Для вызова функции в инициализированной библиотеке вызовите feval или fevalAsync на unique_ptr которая была возвращена initMATLABLibrary. Существует несколько перегруженных версий каждой. Все они принимают имя функции MATLAB ® в качестве первого параметра. Однако они различаются с точки зрения того, принимают ли они и возвращают ли они одинmatlab::data::Array объекты, массивы matlab::data::Arrayили собственные типы. Формы, возвращающие собственный тип, должны принимать тип в качестве параметра шаблона.

  • Для завершения работы библиотеки выполните любой вызов reset на его unique_ptrили позволить ей выйти за рамки.

  • Для завершения работы приложения выполните любой вызов reset на его shared_ptrили позволить ей выйти за рамки. Он не завершается до тех пор, пока все библиотеки, созданные под ним, не будут завершены или выведены из области действия.

Пример файла драйвера, использующего API массива данных C++ MATLAB, см. в разделе matrix_mda.cpp в matlabroot\extern\examples\compilersdk\c_cpp\matrix.

 matrix_mda.cpp

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