codegen Команда на эквивалентный
проект MATLAB CoderВы можете использовать codegen команда со -toproject опция для преобразования codegen команда к эквивалентному MATLAB® Coder™ файл проекта. Затем можно сгенерировать код из файла проекта при помощи другого codegen команда или приложение MATLAB Coder.
Для примера, чтобы преобразовать a codegen команда с входными параметрами input_arguments в файл проекта myProject.prj, выполните:
codegen input_arguments -toproject myProject.prj
Входные параметры в codegen включают:
Имена функций точки входа
Входные определения типов, заданные при помощи -args опция
Опции генерации кода, включая параметры, заданные в объектах строения
Имена пользовательских исходных файлов, включаемых в сгенерированный код
Можно также использовать -toproject опция для преобразования неполного codegen команда в файл проекта. Например, чтобы создать файл проекта myProjectTemplate.prj который содержит только параметры генерации кода, сохраненные в объекте строения cfg, выполните:
codegen -config cfg -toproject myProjectTemplate.prj
myProjectTemplate.prj не содержит спецификаций функций точки входа или входных типов. Итак, вы не можете сгенерировать код из этого файла проекта. Можно открыть myProjectTemplate.prj в приложении MATLAB Coder и использовать его как шаблон для создания полных файлов проекта, которые можно использовать для генерации кода.Примечание
Выполнение codegen команда со -toproject опция не генерирует код. Он создает только файл проекта.
codegen Команда в файл проектаЗадайте функцию MATLAB, myadd, это возвращает сумму двух значений.
function y = myadd(u,v) %#codegen y = u + v; end
Создайте coder.CodeConfig объект для генерации статической библиотеки. Задайте TargetLang на 'C++'.
cfg = coder.config('lib'); cfg.TargetLang = 'C++';
В командной строке MATLAB создайте и запустите codegen команда. Задайте myadd как функцию точки входа. Задайте входы, чтобы myadd как матрицы переменного размера типа double размерности которых неограниченны. Задайте cfg как объект строения кода. Включите -toproject опция для преобразования codegen команда к эквивалентному файлу проекта MATLAB Coder с именем myadd_project.prj.
codegen -config cfg myadd -args {coder.typeof(1,[Inf,Inf]),coder.typeof(1,[Inf,Inf])} -toproject myadd_project.prj
Project file 'myadd_project.prj' was successfully created.
Open ProjectГенератор кода создает файл проекта myadd_project.prj в текущей рабочей папке. Управление codegen с -toproject опция не генерирует код. Он создает только файл проекта.
Сгенерируйте код из myadd_project.prj при помощи другого codegen команда.
codegen myadd_project.prjГенератор кода производит статическую функцию библиотеки C++ myadd в папка, где work\ codegen\lib\myadd - ваша текущая рабочая директория.work
codegen Команда в файл проекта шаблонаСоздайте coder.CodeConfig объект для генерации статической библиотеки. Задайте TargetLang на 'C++'.
cfg = coder.config('lib'); cfg.TargetLang = 'C++';
В командной строке MATLAB создайте и запустите codegen команда. Задайте cfg как объект строения кода. Включите -toproject опция для преобразования codegen команда к эквивалентному файлу проекта MATLAB Coder с именем myProjectTemplate.prj.
codegen -config cfg -toproject myProjectTemplate.prj
Project file 'myProjectTemplate.prj' was successfully created.
Open ProjectТеперь можно открывать myProjectTemplate.prj в приложении MATLAB Coder и использовать его как шаблон для создания полных файлов проекта, которые можно использовать для генерации кода.
Когда вы используете codegen команда со -toproject опция, эти ограничения применяются:
Экспорт CodeTemplate параметр coder.EmbeddedCodeConfig объект в файл проекта не поддерживается.
Предположим, что ваш codegen команда для генерации MEX-функции использует coder.Constant для определения постоянного входа, являющегося fi (Fixed-Point Designer) объект obj.
Определенные fi свойства объекта активируются другими свойствами. Когда вы создаете fi Объект для этих свойств заданы значения по умолчанию, если вы не измените их явно. В obj, вы устанавливаете одно или несколько свойств, которые не включены, в значения, отличные от значений по умолчанию. См. Раздел Свойств объектов (Fixed-Point Designer).
Вы преобразуете это codegen команда в файл проекта при помощи -toproject опция. Вы создаете файл проекта и генерируете MEX-функцию. Когда ты проходишь obj в качестве постоянного входного параметра сгенерированной MEX-функции и запуска MEX MEX может выдать ошибку.
Чтобы исправить эту проблему, вы должны задать свойства obj которые не включены к значениям по умолчанию перед передачей в MEX-функцию. Для этого задайте новую fi obj_new объекта:
a = mat2str(obj); obj_new = eval(a);
Передайте obj_new как постоянный вход в сгенерированную MEX-функцию.