Main Content

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

使用模型资源管理器编辑和管理工作区变量

要了解可用于创建、编辑和管理工作区变量的所有方法,请参阅创建、编辑和管理工作区变量

查找模型或模块使用的变量

在模型资源管理器中,您可以获取模型或模块使用的变量的列表。下面是获取变量列表的一种方式:

  1. Contents 窗格中,右键点击您要查找其所用变量的模块。

  2. 选择 Find Referenced Variables 菜单项。

模型资源管理器返回如下所示的结果:

为了提高性能,模型资源管理器使用模型的上一个编译版本中缓存的信息。如果您要重新编译模型,可以手动进行,也可以在模型资源管理器中将 Update diagram 字段设置为 “yes” 并重复搜索。

您还可以通过以下方式查找模型或模块使用的变量:

  • 在模型资源管理器的 Model Hierarchy 窗格中,右键点击模块或模型节点,然后选择 Find Referenced Variables 菜单项。

  • 在模型资源管理器的搜索栏中,使用 “for Referenced Variables” 搜索类型选项。

  • 在 Simulink® Editor 中,右键点击模块、子系统或画布,然后选择 Find Referenced Variables 菜单项。点击画布,返回整个模型的结果。

Simulink.findVars 函数提供了更多选项,可以返回从模型资源管理器或 Simulink Editor 中无法获得的工作区变量信息。

有关查找引用变量时所受限制的信息,请参阅 Simulink.findVars 说明文档。

使用返回的变量集

对于返回的变量集中的某个变量,您可以查找使用该变量的模块(有关详细信息,请参阅查找使用特定变量的模块)。此外,您还可以从返回的变量集中导出变量。有关详细信息,请参阅导出工作区变量

查找使用特定变量的模块

此示例说明如何使用模型资源管理器获取使用特定工作区变量的模块列表。

  1. 打开模型 f14

  2. 打开模型资源管理器。

  3. Model Hierarchy 窗格中,选择 Base Workspace 节点。

  4. Contents 窗格中,右键点击变量 Mq 并选择 Find Where Used

  5. Select a system 对话框中,选择 f14

  6. 清除 Search in referenced models 复选框,因为 f14 没有引用任何模型,然后点击 OK

    选中 Search in referenced models 之后,您可以查找在模型引用层次结构中任意位置使用的目标变量。但是,在整个层次结构中查找目标变量可能需要更长时间。

    默认情况下,Update diagram to include recent changes 复选框处于清除状态,通过避免不必要的模型图更新来节省时间。选中该复选框将强制模型图更新以包含您最近对模型所做的更改。

  7. 点击 OK 以响应更新模型图的消息。

    由于您刚刚打开模型,因此至少要更新一次模型图才能查找变量。您可能已经在 Select a system 对话框中选择了 Update diagram to include recent changes 以强制进行初始模型图更新,但通常是在使用 Find Where Used 执行多个搜索的同时对模型进行了更改的情况下,才使用此选项。

  8. 模型资源管理器显示搜索结果:

    值中包含 Mq 的属性列表示使用 Mq 变量的模块参数。如果这些属性列尚不在视图中,模型资源管理器会将它们添加到显示的搜索结果的末尾。

您还可以通过以下方式之一查找使用特定变量的模块:

  • 在搜索栏中,选择 “for Variable Usage” 搜索类型选项。

  • Search Results 窗格中,右键点击一个变量,然后选择 Find Where Used 菜单项。

  • 在模型数据编辑器中,右键点击一个工作区变量并选择 Find Where Used 菜单项。

查找未使用的工作区变量

您可以使用模型资源管理器获取在工作区中定义但未被模型或模块使用的变量列表。获取此变量列表的方式之一是在 Model Hierarchy 窗格中右键点击某个工作区名称,然后选择 Find Unused Variables 菜单项。例如:

  1. 打开 f14 模型。

  2. 打开模型资源管理器。

  3. 在搜索工具栏中,将 Update diagram 字段设置为 “yes”。

  4. Model Hierarchy 窗格中,右键点击 Base Workspace 节点,然后选择 Find Unused Variables 菜单项。

  5. 模型资源管理器显示如下输出:

    Simulink.findVars 函数提供了更多选项,可以返回从模型资源管理器或 Simulink Editor 中无法获得的有关未使用的工作区变量的信息。

编辑工作区变量

在模型资源管理器中,您可以使用 Variable Editor 编辑 MATLAB® 基础工作区或模型工作区中的变量。Variable Editor 用于编辑大型数组和结构体。

要打开 Variable Editor,请执行下列操作:

  1. Contents 窗格中,选择变量。

  2. 在 Dialog 窗格(右窗格)中,点击变量值附近的按钮

  3. 在菜单中,选择 Open Variable Editor

或者,要从 Contents 窗格而不是 Dialog 窗格中打开 Variable Editor,请通过点击相应的单元格开始编辑变量的值。该按钮出现在单元格中。

三维或多维数组的表示形式

当变量或 Simulink.Parameter 对象的值是一个三维或多维数组时,Value 列会将该数组显示为一个表达式,其中包含对 reshape 函数的调用。

要编辑数组中的值,请修改 reshape 调用的第一个参数,该参数将所有数组值包含在串行化向量中。当沿某个维度添加或删除元素时,还必须更正表示修改后的维度的长度的参数。

重命名变量

此示例说明如何使用模型资源管理器重命名 Simulink 模型中的模块在任意位置使用的某个变量。

  1. 打开防抱死制动系统建模示例模型sldemo_absbrake。此模型将数据加载到 MATLAB 基础工作区。

  2. 打开模型资源管理器。

  3. Model Hierarchy 窗格中,选择基础工作区。

  4. Contents 窗格中,右键点击基础工作区变量 m,然后选择 Rename All

  5. Select a system 对话框中,点击模型 sldemo_absbrake 的名称,选择它作为重命名变量 m 的上下文。

  6. 清除 Search in referenced models 复选框,然后点击 OK。模型 sldemo_absbrake 引用模型 sldemo_wheelspeed_absbrake,但只有 sldemo_absbrake 使用变量 m

    选中 Search in referenced models 之后,您可以重命名在模型引用层次结构中任意位置使用的目标变量。但是,在整个层次结构中重命名目标变量可能需要更长时间。

    默认情况下,Update diagram to include recent changes 复选框处于清除状态,通过避免不必要的模型图更新来节省时间。选中该复选框将强制模型图更新以包含您最近对模型所做的更改。

  7. 点击 OK 以响应更新模型图的消息。

    由于您刚刚打开模型,因此至少要更新一次模型图才能重命名变量。您可能已经在 Select a system 对话框中选择了 Update diagram to include recent changes 以强制进行初始模型图更新,但通常是在执行多个变量重命名操作的同时对模型进行了更改的情况下,才使用此选项。

  8. Rename All 对话框中,在 New name 框中键入变量的新名称,然后点击 OK

    您可以使用 Rename All 对话框中 Corresponding blocks 部分的超链接来查看目标模块。

注意

只能重命名函数 Simulink.findVars 支持的变量。

有关重命名文件的帮助信息,请使用工程。请参阅Automatic Updates When Renaming, Deleting, or Removing Files

比较重复的工作区变量

您可以比较存储在同一工作区或不同工作区中的重复变量。例如,可以将存储在基础工作区中的变量与存储在模型工作区中的重复变量进行比较。

  1. 打开模型和模型资源管理器。

  2. 在搜索工具栏中,搜索重复的变量。选择包含重复项的行。然后,右键点击并选择 Compare Selected

  3. Comparison Viewer 中查看区别。

导出工作区变量

您可以导出(保存)模型资源管理器中列出的一组变量,既可以导出单个变量,也可以导出基础工作区或模型工作区中的所有变量。

还可以导出使用 Find Referenced Variables 选项或 Simulink.findVars 函数返回的变量集。有关详细信息,请参阅查找模型或模块使用的变量

注意

导出的所有变量必须来自同一个工作区。

要在模型资源管理器中将某个工作区中的所有变量导出到 MATLAB 代码文件或 MAT 文件中,请执行以下操作:

  1. 选择要导出的变量。

    1. 要选择一个工作区中的所有变量,请右键点击该工作区节点(例如,Base Workspace),然后选择 Export 菜单项。例如:

    2. 要选择单个变量,请在 Contents 窗格中选择要导出的变量。右键点击突出显示的某个变量,然后选择 Export Selected 菜单项。

    如果 Contents 窗格中的数据按属性分组,则选择一个组中的第一行并不会选择该组中的所有变量。有关分组数据的详细信息,请参阅模型资源管理器

  2. 指定是将变量保存到 MATLAB 代码文件还是 MAT 文件中。

    MATLAB 代码文件格式更容易读取、可编辑,并且支持版本控制。MAT 文件格式为二进制,在性能上更有优势。

    如果指定 MATLAB 代码文件格式,模型资源管理器可能会创建一个关联的 MAT 文件,此文件反映 MATLAB 代码文件的名称,但扩展名为 .mat 而不是 .m

  3. 指定文件的名称和位置。

  4. 如果该文件已存在,模型资源管理器将显示一个对话框,要求您选择以下选项之一:

    • Overwrite entire file

      • 用选定的变量替换目标文件中按字母顺序存储的所有变量。

    • Update variables that exist in file and append new variables to file

      • 更新现有变量并添加新变量。

    • Only update variables that exist in file

      • 更新现有变量但不添加任何新变量,这样可以消除潜在的外部变量。

要永久存储模型的工作区变量,请创建数据字典,而不是使用基础工作区。请参阅什么是数据字典?

导入工作区变量

您可以使用模型资源管理器从文件向基础工作区或模型工作区中导入(加载)一组变量。向工作区中导入变量时,模型资源管理器将覆盖现有变量并添加任何新变量。

要向工作区中导入变量,请执行以下操作:

  1. Model Hierarchy 窗格中,右键点击要向其中导入变量的工作区。

  2. 选择 Import 菜单项。

  3. 在 Import from File 对话框中,选择要从中导入变量的 MATLAB 代码文件或 MAT 文件。

    注意

    如果导入 MATLAB 代码文件,Simulink 还将导入关联的 MAT 文件。

另请参阅

|

相关主题