Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

coder

打开 MATLAB Coder App

说明

coder 会打开 MATLAB® Coder™ App。要创建工程,请在 Select Source Files 页上提供入口函数文件名。App 会创建一个默认名称为第一个入口函数文件名的工程。要打开一个现有工程,请在 App 工具栏上,点击 ,然后点击 Open existing project

如果安装了 Embedded Coder® 产品,当 App 创建工程时,它将启用 Embedded Coder 功能。如果启用了 Embedded Coder 功能,代码生成需要 Embedded Coder 许可证。要禁用 Embedded Coder 功能,请在工程编译设置中的 All Settings 选项卡上,在 Advanced 下,将 Use Embedded Coder features 设置为 “No”。

coder projectname 使用现有的名为 projectname.prj 的工程打开 MATLAB Coder App。

示例

coder -open projectname 使用现有的名为 projectname.prj 的工程打开 MATLAB Coder App。

示例

coder -build projectname 编译名为 projectname.prj 的现有工程。

示例

coder -new projectname 打开 MATLAB Coder App,创建名为 projectname.prj 的工程。如果安装了 Embedded Coder 产品,App 将创建启用了 Embedded Coder 功能的工程。要禁用这些功能,请在工程编译设置中的 All Settings 选项卡上,在 Advanced 下,将 Use Embedded Coder features 设置为 “No”。

coder -ecoder false -new projectname 打开 MATLAB Coder App,创建名为 projectname.prj 的工程。App 创建禁用了 Embedded Coder 功能的工程,即使安装了 Embedded Coder 产品也是如此。

示例

coder -tocode projectname -script scriptname 将名为 projectname.prj 的现有工程转换为等效的 MATLAB 命令脚本。该脚本名为 scriptname

  • 如果 scriptname 存在,coder 会覆盖它。

  • 脚本在配置对象中重新生成工程编译配置,并编译工程。脚本:

    • 创建名为 cfg 的配置对象。

    • 为函数输入类型定义变量 ARGS

    • 为全局数据初始值定义变量 GLOBALS

    • 运行 codegen 命令。运行脚本时,作为 codegen 的参数的入口函数必须位于搜索路径上。

  • 仅在运行脚本后,cfgARGSGLOBALS 才会出现在基础工作区中。

如果工程包括自动定点转换,coder 会生成两个脚本:

  • 一个是 scriptname 脚本,其中包含用于执行以下操作的 MATLAB 命令:

    • 创建与工程具有相同设置的代码配置对象。

    • 运行 codegen 命令以将定点 MATLAB 函数转换为定点 C 函数。

  • 另一个脚本,其文件名由两部分串联而成:一部分是 scriptname 指定的名称,另一部分是工程文件指定的生成的定点文件名后缀。如果 scriptname 指定了文件扩展名,则脚本文件名也包括文件扩展名。例如,如果 scriptnamemyscript.m,后缀是默认值 _fixpt,则脚本名称是 myscript_fixpt.m

    此脚本包含用于执行以下操作的 MATLAB 命令:

    • 创建一个浮点到定点转换配置对象,该对象具有与工程相同的定点转换设置。

    • 运行 codegen 命令以将浮点 MATLAB 函数转换为定点 MATLAB 函数。

对于包含定点转换的工程,在将工程转换为脚本之前,请完成定点转换过程的 Test Numerics 步骤。

coder -tocode projectname 将名为 projectname.prj 的现有工程转换为等效的 MATLAB 命令脚本。它将脚本写入命令行窗口。

coder -toconfig projectname 将存储在 MATLAB Coder 工程文件中的代码配置设置导出到代码配置对象。执行此命令将返回对应于 projectname 的代码配置对象。有关不同工程文件设置下相应返回的代码配置对象的详细信息,请参阅Share Build Configuration Settings

示例

cfg = coder('-toconfig','projectname') 返回一个配置对象,该对象包含存储在某一 MATLAB Coder 工程文件中的代码配置设置。执行此命令将返回对应于 projectname 的代码配置对象 cfg。有关不同工程文件设置下相应返回的代码配置对象的详细信息,请参阅Share Build Configuration Settings

coder -typeEditor 打开一个空的 Coder Type Editor 对话框。如果对话框已打开,此命令会将它在屏幕中前置。

请参阅Create and Edit Input Types by Using the Coder Type Editor

示例

全部折叠

使用现有的名为 my_coder_projectMATLAB Coder 工程打开 MATLAB Coder App。

coder -open my_coder_project

编译名为 my_coder_projectMATLAB Coder 工程。

coder -build my_coder_project

打开 MATLAB Coder App 并创建名为 my_coder_project 的工程。

coder -new my_coder_project

将名为 my_coder_project.prjMATLAB Coder 工程转换为名为 myscript.m 的 MATLAB 脚本。

coder -tocode my_coder_project -script my_script.m

定义一个 MATLAB 函数 myadd,它返回两个值的总和。

function y = myadd(u,v) %#codegen
y = u + v;
end

创建 MATLAB Coder 工程 myadd.prj

  • 打开 MATLAB Coder App。将 myadd 指定为入口函数。

  • Define Inputs Types 页,将 uv 指定为双精度标量。

  • Generate Code 页上,将 Build Type 设置为 “MEX”。对于其他工程文件设置,保留其默认值。

在 MATLAB 命令行中,运行以下命令:

cfg = coder('-toconfig','myadd.prj');

代码生成器创建 coder.MexCodeConfig 对象 cfg,其中包含存储在 myadd.prj 中的代码配置设置。

检查 cfg 的属性。

cfg = 

    Description: 'class MexCodeConfig: MEX configuration objects with C code.'
    Name: 'MexCodeConfig'

-------------------------------- Report -------------------------------

                      GenerateReport: true
                        LaunchReport: false
                   ReportInfoVarName: ''
          ReportPotentialDifferences: false

------------------------------- Debugging -----------------------------

                     EchoExpressions: true
                     EnableDebugging: false
                  EnableMexProfiling: false

---------------------------- Code Generation --------------------------

                      ConstantInputs: 'CheckValues'
                           EnableJIT: false
                 FilePartitionMethod: 'MapMFileToCFile'
                         GenCodeOnly: false
    HighlightPotentialRowMajorIssues: true
                  PostCodeGenCommand: ''
             PreserveArrayDimensions: false
                            RowMajor: false
                          TargetLang: 'C'

------------------------ Language And Semantics -----------------------

           CompileTimeRecursionLimit: 50
              ConstantFoldingTimeout: 40000
             DynamicMemoryAllocation: 'Threshold'
    DynamicMemoryAllocationThreshold: 65536
            EnableAutoExtrinsicCalls: true
              EnableRuntimeRecursion: true
                EnableVariableSizing: true
                      ExtrinsicCalls: true
                GlobalDataSyncMethod: 'SyncAlways'
               InitFltsAndDblsToZero: true
               PreserveVariableNames: 'None'
           SaturateOnIntegerOverflow: true

------------------------- C++ Language Features -----------------------

                        CppNamespace: ''

----------------- Safety (disable for faster execution) ---------------

                     IntegrityChecks: true
                ResponsivenessChecks: true

---------------- Function Inlining and Stack Allocation ---------------

                    InlineStackLimit: 4000
                     InlineThreshold: 10
                  InlineThresholdMax: 200
                       StackUsageMax: 200000

----------------------------- Optimizations ---------------------------

                        EnableMemcpy: true
                        EnableOpenMP: true
                     MemcpyThreshold: 64

------------------------------- Comments ------------------------------

                    GenerateComments: true
                MATLABSourceComments: false

------------------------------ Custom Code ----------------------------

                    CustomHeaderCode: ''
                       CustomInclude: ''
                   CustomInitializer: ''
                       CustomLibrary: ''
                        CustomSource: ''
                    CustomSourceCode: ''
                    CustomTerminator: ''
                   ReservedNameArray: ''

输入参数

全部折叠

您要创建、打开或编译的 MATLAB Coder 工程的名称。工程名称不能包含空格。

通过将 -tocode 选项与 -script 选项结合使用来创建的脚本的名称。脚本名称不能包含空格。

输出参数

全部折叠

包含存储在 MATLAB Coder 工程文件中的配置设置的代码配置对象。

限制

  • MATLAB Online™ 不支持 coder 函数。

提示

  • 如果您是共享 Embedded Coder 许可证,请使用 coder -ecoder false -new projectname 创建一个不需要此许可证的工程。如果安装了 Embedded Coder 产品,App 将创建禁用了 Embedded Coder 功能的工程。禁用这些功能后,代码生成不需要 Embedded Coder 许可证。要启用 Embedded Coder 功能,请在工程编译设置中的 All Settings 选项卡上,在 Advanced 下,将 Use Embedded Coder features 设置为 “Yes”。

  • 创建工程或打开现有工程会导致其他 MATLAB Coder 或定点转换器工程关闭。

  • 如果您的安装不包括 Embedded Coder 产品,则不会显示 Embedded Coder 设置。但是,这些设置的值会保存在工程文件中。如果您在包含 Embedded Coder 产品的安装中打开该工程,您会看到这些设置。

  • 定点转换器工程在定点转换器中打开。要将工程转换为 MATLAB Coder 工程,请在定点转换器中执行以下操作:

    1. 点击 ,然后选择 Reopen project as

    2. 选择 “MATLAB Coder”。

替代方法

  • App 选项卡上的代码生成部分中,点击 MATLAB Coder

  • 在命令行中使用 codegen 函数生成代码。

在 R2011a 中推出