Main Content

使用 App 指定全局变量类型和初始值

为什么要为全局变量指定类型定义?

如果在 MATLAB® 算法中使用全局变量,则在构建工程之前,必须为每个全局变量添加全局类型定义和初始值。如果不初始化全局数据,则 App 将在 MATLAB 全局工作区中查找变量。如果变量不存在,App 会生成错误。

如果您在 MEX 函数中使用全局数据,还必须指定是否在 MATLAB 和 MEX 函数之间同步这些数据。请参阅Synchronizing Global Data with MATLAB

添加全局数据

要添加全局变量,请执行以下操作:

  1. 定义输入类型页上,自动定义输入类型或点击自行直接键入输入类型或全局类型

    App 显示一个入口函数输入表。

  2. 要添加全局变量,请点击添加全局变量。默认情况下,App 将工程中的第一个全局变量命名为 g,后续的全局变量命名为 g1g2,依此类推。

  3. 全局变量下,输入全局变量的名称。

  4. 在生成代码之前,请指定类型和初始值。否则,您必须在全局工作区中创建一个同名的变量。

指定全局变量类型和初始值

  1. 使用以下方法之一指定每个全局变量的类型:

  2. 为每个全局变量定义初始值

如果不为全局变量提供类型定义和初始值,请在 MATLAB 工作区中创建一个具有相同名称和适当的类、大小、复/实性和值的变量。

通过示例定义全局变量

  1. 点击要定义的全局变量右侧的字段。

  2. 选择按示例定义

  3. 在全局名称右侧的字段中,输入具有所需的类、大小和复/实性的 MATLAB 表达式。MATLAB Coder™ 使用此表达式的值的类、大小和复/实性作为全局变量的类型。

    您也可以从工作区变量列表中选择变量。

    App dialog box, showing list of workspace variables. Variable g, a scalar double, is highlighted.

  4. (可选)更改全局变量的大小。点击要更改的维度,然后输入大小,例如 10

    App dialog box, showing where to change the size of variable g

    您可以指定:

    • 固定大小。在此示例中,选择 10

    • 可变大小,通过使用 : 前缀来指定,最高不超过指定的限制。在此示例中,要指定输入的大小不超过 10,请选择 :10

    • 无界可变大小,通过选择 :Inf 来指定。

定义或编辑全局变量类型

  1. 点击要定义的全局变量右侧的字段。

  2. (可选)对于数值类型,请选择复数使参数成为复数类型。默认情况下,输入是实数。

  3. 选择全局变量的类型。例如,double

    默认情况下,全局变量是标量。

  4. (可选)更改全局变量的大小。点击要更改的维度,然后输入大小,例如 10

    App dialog box, showing where to change the size of variable g

    您可以指定:

    • 固定大小。在此示例中,选择 10

    • 可变大小,通过使用 : 前缀来指定,最高不超过指定的限制。在此示例中,要指定输入的大小不超过 10,请选择 :10

    • 无界可变大小,通过选择 :Inf 来指定。

定义全局变量初始值

在定义类型之前定义初始值

  1. 点击全局变量右侧的字段。

  2. 选择定义初始值

  3. 输入一个 MATLAB 表达式。MATLAB Coder 使用指定的 MATLAB 表达式的值作为全局变量的值。由于您在定义全局变量的初始值之前未定义其类型,MATLAB Coder 将初始值类型用作全局变量类型。

    工程显示全局变量已初始化。

    App window, showing that global variable g is initialized

    如果在定义全局变量的初始值后更改其类型,则必须重新定义初始值。

在定义类型后定义初始值

  1. 点击预定义的全局变量的类型字段。

  2. 选择定义初始值

  3. 输入一个 MATLAB 表达式。MATLAB Coder 使用指定的表达式的值作为全局变量的值。如果初始值的类型不同于您在初始化全局变量之前指定的类型,MATLAB Coder 将使用初始值的类型。工程显示全局变量已初始化。

    App window, showing that global variable g is initialized

定义常量全局变量

  1. 点击全局变量右侧的字段。

  2. 选择定义常量值

  3. 在全局变量右侧的字段中,输入 MATLAB 表达式。

删除全局变量

  1. 右键点击全局变量。

  2. 从菜单中选择删除全局变量