主要内容

介绍代码生成

MATLAB®编码器™生成可读和可移植的C和c++代码从统计和机器学习工具箱™函数支持代码生成。金宝app你可以将生成的代码集成到项目源代码,静态库,或动态库。您还可以使用生成的代码在MATLAB环境中加速计算密集型部分MATLAB代码。

需要生成C / c++代码MATLAB编码器和有以下限制:

  • 你不能调用任何函数在顶层时,通过使用生成代码codegen(MATLAB编码器)。相反,在一个调用的函数入口点函数,然后从入口点函数生成代码。的入口点函数,也称为顶级函数是一个函数定义为代码生成。内的所有函数的入口点函数必须支持代码生成。金宝app

  • MATLAB编码器限制也适用于统计和机器学习为代码生成工具箱。有关详细信息,请参见MATLAB语言特性支持C / c++代码生成金宝app(MATLAB编码器)

  • 代码生成的统计和机器学习工具不支持稀疏矩阵。金宝app

  • 代码生成使用笔记和限制为每个函数,参见代码生成部分在功能上引用页面。

列表统计和机器学习的工具箱函数支持代码生成,明白了金宝app功能列表(C / c++代码生成)

代码生成工作流

您可以生成C / c++代码统计和机器学习的工具箱函数在几个方面。

  • 通用工作流代码生成功能,并不是对象功能的机器学习模型

    通用代码生成工作流

    定义一个入口点函数调用的函数支持代码生成,生成C / c++代码的入口点函数的使用金宝appcodegen(MATLAB编码器),然后验证生成的代码。的入口点函数,也称为顶级函数是一个函数定义为代码生成。因为你不能调用任何函数在顶层codegen,您必须定义一个入口点函数。内的所有函数的入口点函数必须支持代码生成。金宝app

    有关详细信息,请参见通用代码生成工作流

  • 代码生成工作流的目标函数(包括机器学习模型预测,随机,knnsearch,rangesearch,isanomaly和增量学习对象函数)

    代码生成工作流对象功能的机器学习模型

    通过使用保存训练模型saveLearnerForCoder定义一个入口点函数,通过使用加载保存模型loadLearnerForCoder并调用对象的函数。然后生成代码的入口点函数的使用codegen(MATLAB编码器),并验证所生成的代码。入口点函数的输入参数不能分类或回归模型对象。因此,您需要解决这个限制使用saveLearnerForCoderloadLearnerForCoder

    你也可以生成单精度C / c++代码的机器学习模型的预测分类和回归。对于单精度代码生成、指定名称-值对的论点“数据类型”、“单”作为一个额外的输入loadLearnerForCoder函数。

    ,这些例子

    你也可以生成定点C / c++代码的支持向量机(SVM)模型的预测,决策树模型,一个决策树的分类和回归。金宝app这种类型的代码生成需要定点设计师™。

    定点代码生成工作流

    定点代码生成需要一个额外的步骤,定义了定点预测所需的变量的数据类型。创建一个定点数据类型结构通过使用生成的数据类型的功能generateLearnerDataTypeFcn,使用的结构作为输入参数loadLearnerForCoder在一个入口点函数。您还可以优化定点数据类型生成代码。

    有关详细信息,请参见定点代码生成SVM的预测

  • 代码生成的工作流预测更新树的函数模型,一个支持向量机模型,线性模型或多级纠错输出编码(ECOC)使用支持向量机分类模型或线性二进制学习者

    代码生成工作流的预测和更新函数与编码器配置

    在训练模型,创建一个编码器配置使用learnerCoderConfigurer通过使用生成代码generateCode,然后验证生成的代码。您可以配置代码生成选项和指定的编码属性使用对象属性模型参数。之后再培训模型与新数据或设置,您可以更新模型参数生成的C / c++代码,而不必重新生成代码。这个特性可以减少所需的努力再生,重新部署,reverify C / c++代码。

    有关详细信息,请参见代码生成的预测和更新使用编码器配置

代码生成的应用程序

机器学习模型的集成预测模型金宝app®,使用MATLAB的仿真软件模块功能块或统计和机器学习工具库。金宝app,这些例子:

代码生成的统计和机器学习的工具箱函数也适用于其他系统对象™和Stateflow等工具箱®在这些例子中所描述的:

更多的应用程序代码生成,看到这些例子:

另请参阅

(MATLAB编码器)||||

相关的话题