MATLAB ® Coder™ генерирует считываемый и портативный код C и C++ из функций Toolbox™ статистики и машинного обучения, которые поддерживают генерацию кода. Созданный код можно интегрировать в проекты в виде исходного кода, статических библиотек или динамических библиотек. Можно также использовать сгенерированный код в среде MATLAB для ускорения интенсивных вычислений частей кода MATLAB.
Для создания кода C/C + + требуется кодер MATLAB со следующими ограничениями:
Невозможно вызвать какую-либо функцию на верхнем уровне при создании кода с помощью codegen (Кодер MATLAB). Вместо этого вызовите функцию внутри функции точки входа, а затем создайте код из функции точки входа. Функция начального уровня, также известная как функция верхнего уровня или первичная функция, является функцией, определяемой для создания кода. Все функции в рамках функции начального уровня должны поддерживать генерацию кода.
Ограничения кодера MATLAB также применяются к инструментам для статистики и машинного обучения для генерации кода. Дополнительные сведения см. в разделе Функции языка MATLAB, поддерживаемые для генерации кода C/C + + (кодер MATLAB).
Генерация кода в панели инструментов статистики и машинного обучения не поддерживает разреженные матрицы.
Примечания по использованию генерации кода и ограничения для каждой функции см. в разделе Создание кода на справочной странице функции.
Список функций Statistics and Machine Learning Toolbox, поддерживающих создание кода, см. в разделе Список функций (C/C + + Создание кода).
Код C/C + + можно создать для функций панели инструментов статистики и машинного обучения несколькими способами.
Общий поток операций создания кода для функций, не являющихся объектными функциями моделей машинного обучения
![]()
Определите функцию точки входа, которая вызывает функцию, поддерживающую генерацию кода, создайте код C/C + + для функции точки входа с помощью codegen (Кодер MATLAB), а затем проверьте созданный код. Функция начального уровня, также известная как функция верхнего уровня или первичная функция, является функцией, определяемой для создания кода. Потому что вы не можете вызвать какую-либо функцию на верхнем уровне с помощью codegen, необходимо определить функцию точки входа. Все функции в рамках функции начального уровня должны поддерживать генерацию кода.
Дополнительные сведения см. в разделе Общий рабочий процесс создания кода.
Рабочий процесс генерации кода для объектной функции модели машинного обучения (включая predict, random, knnsearch, rangesearchи инкрементные функции учебного объекта)
![]()
Сохранение обучаемой модели с помощью saveLearnerForCoderи определите функцию точки входа, которая загружает сохраненную модель с помощью loadLearnerForCoder и вызывает функцию объекта. Затем создайте код для функции точки входа с помощью codegen (Кодер MATLAB) и проверьте созданный код. Входными аргументами функции точки входа не могут быть объекты модели классификации или регрессии. Поэтому необходимо обойти это ограничение, используя saveLearnerForCoder и loadLearnerForCoder.
Также можно создать код C/C + + с одной точностью для прогнозирования моделей машинного обучения для классификации и регрессии. Для создания кода с одинарной точностью укажите аргумент пары имя-значение'Datatype','single' в качестве дополнительного вклада в loadLearnerForCoder функция.
Дополнительные сведения см. в следующих примерах
Также можно создать код C/C + + с фиксированной точкой для прогнозирования модели машины с опорным вектором (SVM), модели дерева решений и совокупности деревьев решений для классификации и регрессии. Этот тип генерации кода требует Designer™ Fixed-Point.
![]()
Создание кода с фиксированной точкой требует дополнительного шага, который определяет типы данных с фиксированной точкой переменных, необходимых для прогнозирования. Создание структуры типа данных с фиксированной точкой с помощью функции типа данных, созданной generateLearnerDataTypeFcnи использовать структуру в качестве входного аргумента loadLearnerForCoder в функции точки входа. Перед созданием кода можно также оптимизировать типы данных с фиксированной точкой.
Для получения дополнительной информации см. Создание кода с фиксированной точкой для прогнозирования SVM.
Рабочий процесс создания кода для predict и update функции древовидной модели, модели SVM, линейной модели или мультиклассовой модели классификации выходных кодов с исправлением ошибок (ECOC) с использованием SVM или линейных двоичных учеников

Создание конфигуратора кодера с помощью learnerCoderConfigurer, создать код с помощью generateCode, а затем проверьте созданный код. Параметры генерации кода и атрибуты кодера параметров модели можно настроить с помощью свойств объекта. После переподготовки модели с новыми данными или настройками можно обновить параметры модели в сгенерированном коде C/C + + без необходимости регенерации кода. Эта функция уменьшает усилия, необходимые для регенерации, повторного развертывания и восстановления кода C/C + +.
Дополнительные сведения см. в разделе Создание кода для прогнозирования и обновления с помощью конфигуратора кодера.
Чтобы интегрировать прогнозирование модели машинного обучения в Simulink ®, используйте функциональный блок MATLAB или блоки Simulink в библиотеке инструментов статистики и машинного обучения. Для получения более подробной информации см. следующие примеры:
Создание кода для функций Statistics и Machine Learning Toolbox также работает с другими панелями инструментов, такими как System object™ и Stateflow ®, как описано в следующих примерах:
Дополнительные сведения о применении генерации кода см. в следующих примерах:
generateLearnerDataTypeFcn | learnerCoderConfigurer | loadLearnerForCoder | saveLearnerForCoder | codegen (кодер MATLAB)