В этом примере показано, как создать MATLAB C++® API данных совместно использовал заголовок библиотеки от функции MATLAB со строгим контролем типов, и интегрируйте его с демонстрационным кодом приложения C++. Целевая система не требует, чтобы лицензированная копия MATLAB запустила приложение.
Запустите этот пример путем создания новой папки работы, которая отображается к пути поиска файлов MATLAB.
Проверьте, что вам установили компилятор C++ путем ввода mbuild -setup в командной строке MATLAB.
У конечных пользователей должна быть установка MATLAB Runtime, чтобы запустить приложение. Для получения дополнительной информации смотрите Установку и Сконфигурируйте MATLAB Runtime.
Для тестирования можно использовать установку MATLAB вместо MATLAB Runtime.
Создайте файл MATLAB под названием stronglyTypedFactorial.m со следующим кодом:
function fact = stronglyTypedFactorial(n) arguments n (1,1) uint64 {mustBeReal, mustBeLessThan(n,22)} end fact = 1; for i = 1:n fact = fact*i; end end
Протестируйте функцию в командной строке MATLAB.
stronglyTypedFactorial(5)
ans = uint64 120
mcc КомандаСгенерируйте совместно использованный заголовок библиотеки C++ с помощью mcc команда. В командной строке введите:
if ~exist('output/cpp','dir') mkdir output/cpp end mcc -W 'cpplib:stronglyTypedFactorial,generic' stronglyTypedFactorial.m -d output/cpp
v2 > generic_interface папка:
readme.txt
stronglyTypedFactorial.ctf
stronglyTypedFactorialv2.hpp
stronglyTypedFactorialv2.hpp заголовочный файл содержит массив данных C++, который принимает аргумент типа uint64_t.
matlab::data::Array stronglyTypedFactorial(std::shared_ptr<MATLABControllerType> _matlabPtr, uint64_t n)Этот uint64_t отображение совпадает с uint64 со строгим контролем типов тип данных аргумента MATLAB.
n (1,1) uint64 {mustBeReal, mustBeLessThan(n,22)}Для получения дополнительной информации смотрите Отображения Типа данных Между C++ и кодом MATLAB Со строгим контролем типов.
Создайте файл кода приложения C++ под названием factApp.cpp со следующим кодом.
Примечание
При записи кода приложения C++ необходимо включать заголовочный файл (.hpp файл) сгенерированный mcc команда или приложение Library Compiler и MatlabCppSharedLib.hpp заголовочный файл с помощью #include директивы.
Скомпилируйте и соедините приложение C++ в командной строке MATLAB.
mbuild factApp.cpp -outdir output/cpp
Запустите приложение от системной командной строки путем передачи развертываемого архива (.ctf файл) как вход. Для тестирования можно запустить приложение из командной строки MATLAB.
!output\cpp\factApp.exe output\cpp\v2\generic_interface\stronglyTypedFactorial.ctfFactorial of 5 is 120