文档

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

要了解可用于创建、编辑和管理工作空间变量的所有技术,请参见创建、编辑和管理工作区变量

查找模型或块使用的变量

在Model Explorer中,您可以获得模型或块使用的变量列表。下面的方法是获取变量列表的一种方法:

  1. 内容窗格中,右键单击要查找其使用的变量的块。

  2. 选择找到引用变量菜单项。

模型资源管理器返回的结果类似如下:

为了提高性能,Model Explorer使用了来自模型最后一个编译版本的缓存信息。如果您想要重新编译模型,可以手动进行,或者在model Explorer中设置更新图字段是的然后重复搜索。

你还可以使用以下方法来查找模型或块使用的变量:

  • 在模型资源管理器中模型层次结构窗格中,右键单击块或模型节点并选择找到引用变量菜单项。

  • 在模型资源管理器的搜索栏中,使用引用变量搜索类型的选择。

  • 在仿真软件金宝app®编辑器中,右键单击块、子系统或画布中的找到引用变量菜单项。单击画布将返回整个模型的结果。

金宝appSimulink.findVars函数提供了返回关于工作空间变量的信息的附加选项,这些信息无法从模型资源管理器或Simulink编辑器中获得。金宝app

有关查找引用变量时的限制的信息,请参见金宝appSimulink.findVars文档。

使用返回的变量集

对于返回变量集中的变量,您可以找到使用该变量的块(有关详细信息,请参见查找使用特定变量的块).此外,您还可以从返回的变量集中导出变量。有关详细信息,请参见出口工作空间变量

查找使用特定变量的块

这个例子展示了如何使用Model Explorer来获取使用特定工作空间变量的块列表。

  1. 打开模型f14

  2. 模型浏览器打开。

  3. 模型层次结构窗格中,选择基本工作空间节点。

  4. 内容窗格中,右键单击该变量Mq并选择发现在使用

  5. 选择一个系统对话框中,选择f14

  6. 清除在引用模型中搜索复选框,因为f14没有引用任何模型,点击好吧

    在引用模型中搜索选中后,您可以在模型引用层次结构中使用目标变量的任何地方找到它。然而,在整个层次结构中查找目标变量可能需要更多的时间。

    更新图表以包括最近的更改复选框在默认情况下被清除,以避免不必要的模型图更新,从而节省时间。选择复选框,通过强制图更新来合并您对模型所做的最近更改。

  7. 点击好吧响应更新模型图的消息。

    因为您刚刚打开了模型,所以在找到变量之前,您必须至少更新一次模型图。你可以选择更新图表以包括最近的更改选择一个系统对话框强制初始关系图更新,尽管您通常在对模型进行更改时使用该选项,同时执行多个搜索发现在使用

  8. Model Explorer显示搜索结果:

    属性列的值包括Mq类的块参数Mq变量。如果这些属性列还没有在视图中,那么Model Explorer会将它们添加到搜索结果显示的末尾。

你也可以通过以下方法找到使用特定变量的块:

  • 在搜索栏中,选择变量使用搜索类型的选择。

  • 搜索结果窗格中,右键单击一个变量并选择发现在使用菜单项。

  • 在模型数据编辑器中,右键单击工作空间变量并选择发现在使用菜单项。

查找未使用的工作区变量

您可以使用Model Explorer来获得一个变量列表,这些变量在工作空间中定义,但没有被模型或块使用。控件中获取该变量列表的一种方法是右键单击工作区名称模型层次结构窗格并选择发现未使用的变量菜单项。例如:

  1. 打开f14模型。

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

  3. 在搜索工具栏中,设置更新图字段是的

  4. 模型层次结构窗格中,右键单击基本工作空间节点,并选择发现未使用的变量菜单项。

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

    金宝appSimulink.findVars函数提供了其他选项,用于返回关于未使用的工作区变量的信息,这些变量无法从模型资源管理器或Simulink编辑器中获得。金宝app

编辑工作空间变量

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

打开变量编辑器:

  1. 内容窗格中,选择变量。

  2. 在对话框窗格(右窗格)中,单击按钮在变量值附近。

  3. 在菜单中,选择打开变量编辑器

控件中打开变量编辑器内容窗格,而不是Dialog窗格,通过单击适当的单元格开始编辑变量的值。该按钮出现在单元格中。

具有三个或更多维度的数组表示

当变量的值或金宝app仿真软件。参数对象是具有三个或更多维度的数组价值列将数组显示为表达式,其中包含对重塑函数。

类的第一个参数可编辑数组中的值重塑调用,该函数包含序列化向量中的所有数组值。在沿维度添加或删除元素时,还必须更正表示修改后维度长度的参数。

重命名变量

这个例子展示了如何使用模型资源管理器来重命名在Simulink模型中被块使用的变量。金宝app

  1. 打开模型sldemo_absbrake.模型将数据加载到MATLAB基本工作区。

  2. 模型浏览器打开。

  3. 模型层次结构窗格中,选择基本工作区。

  4. 内容窗格中,右键单击基本工作区变量并选择重命名所有

  5. 选择一个系统对话框中,单击模型的名称sldemo_absbrake选择它作为重命名变量的上下文

  6. 清除在引用模型中搜索复选框并单击好吧.该模型sldemo_absbrake参考模型sldemo_wheelspeed_absbrake,但只有sldemo_absbrake使用变量

    在引用模型中搜索选中后,您可以在模型引用层次结构中使用目标变量的任何地方重命名它。然而,在整个层次结构中重命名目标变量会花费更多的时间。

    更新图表以包括最近的更改复选框在默认情况下被清除,以避免不必要的模型图更新,从而节省时间。选择复选框,通过强制图更新来合并您对模型所做的最近更改。

  7. 点击好吧响应更新模型图的消息。

    因为您刚刚打开了模型,所以在重命名变量之前,您必须至少更新一次模型图。你可以选择更新图表以包括最近的更改选择一个系统对话框强制初始关系图更新,尽管您通常在执行多个变量重命名操作时对模型进行更改时使用该选项。

  8. 重命名所有对话框中,为变量键入新名称新名字框,然后单击好吧

    的超链接相应的块部分的重命名所有对话框查看目标块。

请注意

只能重命名函数对应的变量金宝appSimulink.findVars金宝app支持。

要获得重命名文件的帮助,请使用项目。看到重命名、删除或删除文件时自动更新

比较重复的工作空间变量

您可以比较存储在相同工作区或不同工作区中的重复变量。例如,您可以比较存储在基本工作区中的变量与其存储在模型工作区中的副本。

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

  2. 在搜索工具栏中,搜索重复的变量。选择有重复条目的行。然后,右键单击并选择比较选择

  3. 的区别对比查看器

出口工作空间变量

您可以导出(保存)Model Explorer中列出的一组变量,导出基本工作区或模型工作区中的单个变量或所有变量。

方法返回的变量集是一种可能的工作流程找到引用变量选择或金宝appSimulink.findVars函数。有关详细信息,请参见查找模型或块使用的变量

请注意

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

要将模型资源管理器中工作区中的所有变量导出到MATLAB代码文件或mat文件中:

  1. 选择要导出的变量。

    1. 要选择工作空间中的所有变量,右键单击工作空间节点(例如,基本工作空间),并选择出口菜单项。例如:

    2. 中选择单个变量内容窗格中,选择要导出的变量。右键单击其中一个高亮显示的变量并选择出口选择菜单项。

    如果内容窗格中有按属性分组的数据,选择组中的顶部行并不会选择该组中的所有变量。关于分组数据的详细信息,请参见按物业分组

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

    MATLAB代码文件格式更容易阅读,可编辑,并支持版本控制。金宝appmat文件格式为二进制,具有性能优势。

    如果您指定一个MATLAB代码文件格式,Model Explorer可能会创建一个关联的mat文件,反映MATLAB代码文件的名称,但是扩展名为.mat而不是.米

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

  4. 如果该文件已经存在,Model Explorer将显示一个对话框,要求您选择以下选项之一:

    • 覆盖整个文件

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

    • 更新文件中存在的变量并向文件追加新的变量

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

    • 只更新文件中存在的变量

      • 更新现有变量,但不添加任何新变量,这将消除潜在的无关变量。

要永久存储模型的工作空间变量,而不是使用基本工作空间,请创建一个数据字典。看到什么是数据字典?

导入工作空间变量

您可以使用model Explorer将一组变量从文件导入(加载)到基本工作区或模型工作区中。当您将变量导入到工作区中时,Model Explorer将覆盖现有变量并添加任何新变量。

将变量导入到工作区中:

  1. 模型层次结构窗格中,右键单击要导入变量的工作区。

  2. 选择进口菜单项。

  3. 在“从文件导入”对话框中,为要导入的变量选择MATLAB代码文件或mat文件。

    请注意

    如果您导入一个MATLAB代码文件,那么Simulink也会导入相关的mat文金宝app件。

另请参阅

相关的例子

更多关于