代码生成简介

MATLAB®编码器™从支持代码生成的Statistics和Machine Learning Toolbox™函数中生成可读且可移植的C和c++代码。金宝app您可以将生成的代码作为源代码、静态库或动态库集成到项目中。您还可以在MATLAB环境中使用生成的代码来加速MATLAB代码的计算密集型部分。

生成C / C ++代码需要MATLAB编码器具有以下局限性:

  • 通过使用时,您无法在顶级调用任何功能codegen.相反,调用函数入口点函数,然后从入口点函数生成代码。入口点函数,又称顶级或者基本的函数,是为代码生成而定义的函数。入口点函数中的所有函数必须支持代码生成。金宝app

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

  • 统计和机器学习工具箱中的代码生成不支持稀疏矩阵和分类阵列。金宝app代码生成支持数最预测函数的数字表金宝app。

  • 对于每个函数的代码生成使用记录和限制,请参阅“功能参考”页面上的“代码生成”部分。

有关支持代码生成的Statistics和Machine Learning Toolbox函数的列表,请参见金宝app函数列表(C/ c++代码生成)

代码生成工作流程

您可以以多种方式生成统计信息和机器学习工具箱功能的C / C ++代码。

  • 通用代码生成工作流,用于不属于机器学习模型的目标函数的函数

    定义A.入口点函数调用支持代码生成的函数时,为入口点函数生成C/ c++代码金宝appcodegen,然后验证生成的代码。入口点函数,又称顶级或者基本的函数,是为代码生成而定义的函数。因为你不能在顶层使用codegen,则必须定义一个入口点函数。入口点函数中的所有函数必须支持代码生成。金宝app

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

  • 对象功能的代码生成工作流(预测随机knnsearch,或rangesearch)的机器学习模型

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

    有关详细信息,请参阅以下示例

    您还可以生成用于预测支持向量机(SVM)模型,决策树模型和决策树的集成树的集合的固定点C / C ++代码。金宝app此类代码生成需要固定点设计器™。

    定点代码生成需要一个额外的步骤,定义预测所需变量的定点数据类型。通过使用生成的数据类型函数创建定点数据类型结构generatelearnerdatatypefcn.,并将该结构用作的输入参数loadLearnerForCoder在入口点函数中。您还可以在生成代码之前优化定点数据类型。

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

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

    使用。创建编码器配置器Learnercoderconfigurer,通过使用生成代码Generatecode.,然后验证生成的代码。您可以配置代码生成选项,并使用对象属性指定模型参数的编码器属性。在使用新数据或设置重新训练模型之后,您可以在生成的C/ c++代码中更新模型参数,而无需重新生成代码。该特性减少了重新生成、重新部署和重新验证C/ c++代码所需的工作。

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

代码生成的应用程序

Statistics和Machine Learning Toolbox函数的代码生成也可以与其他工具箱(如Simulink)一起使用金宝app®、系统对象™和状态流®,如以下例子所述:

有关代码生成的更多应用,请参阅以下示例:

另请参阅

||||

相关话题