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

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

  • Вызовите функцию free 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

Похожие темы