codegen Команда для эквивалентного
проекта кодера MATLABВы можете использовать codegen с помощью команды -toproject для преобразования codegen в эквивалентный файл проекта MATLAB ® Coder™. Затем можно создать код из файла проекта с помощью другогоcodegen или приложение Кодер MATLAB.
Например, для преобразования 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 с именем 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 с именем 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 (Конструктор фиксированных точек) obj.
Бесспорный fi свойства объекта активируются другими свойствами. При построении fi для этих свойств устанавливаются значения по умолчанию, если они не изменены явным образом. В obj, для одного или нескольких свойств, которые не включены, устанавливаются значения, отличные от значений по умолчанию. См. раздел Свойства объекта fi (Конструктор фиксированных точек).
Вы преобразуете это codegen в файл проекта с помощью команды -toproject вариант. Создается файл проекта и создается функция MEX. Когда вы проходите obj в качестве постоянного входного аргумента для сгенерированной функции MEX и запуска MEX, MEX может вызвать ошибку.
Чтобы устранить эту проблему, необходимо задать свойства obj которые не имеют значения по умолчанию перед передачей их функции MEX. Для этого определите новый fi объект obj_new:
a = mat2str(obj); obj_new = eval(a);
Проход obj_new в качестве постоянного ввода в генерируемую функцию MEX.