Main Content

close_system

关闭 Simulink 模型窗口或模块对话框

说明

close_system 关闭当前系统或子系统。如果当前系统是顶层模型并已修改,close_system 将返回错误。

使用 gcs 函数确定当前系统。

注意

您不能在模块或菜单回调中使用 close_system 来关闭根级模型。尝试在模块或菜单回调中关闭根级模型将导致错误并中断回调的执行。

示例

close_system(blockOrSys) 关闭指定的模型或子系统或者指定模块的模块对话框。如果只是使用 load_system 加载了模型,此语法会从内存中清除该模型。

close_system(sys,saveflag) 允许您指定是用当前名称保存模型,还是直接关闭模型而不保存。

示例

close_system(sys,newsys) 会在关闭前使用指定名称将模型保存到一个文件。

示例

close_system(sys,___,Name,Value) 使用一个或多个 Name,Value 对组参量指定其他选项。

示例

全部折叠

假设您有一个名为 myModel 的模型。

打开模型。

open_system('myModel')

关闭模型。

close_system

假设您有名为 myModel 的模型,其中包含名为 myGain 的 Gain 模块。

打开模型。

open_system('myModel')

在模型中,双击 Gain 模块以打开其模块对话框。

关闭模块对话框

close_system('myModel/myGain');

假设您有一个名为 myModel 的模型。

打开模型。

open_system('myModel')

将名为 myScope 的 Scope 模块添加到模型中。

add_block('simulink/Sinks/Scope','myModel/myScope');

关闭模型并用新名称保存。

close_system('myModel','myNewModel');

假设您有一个名为 myModel 的模型。

打开模型。

open_system('myModel')

关闭模型。用名称 max 保存模型,并将 ErrorIfShadowed 参数设置为 true

close_system('myModel','max','ErrorIfShadowed',true)

此命令返回错误,因为 'max' 是 MATLAB® 函数的名称。

打开一个模型层次结构,加载引用模型,然后关闭顶层模型,但使引用模型保持已加载状态。

打开 sldemo_mdlref_basic 模型并加载其引用模型 sldemo_mdlref_counter

openExample('sldemo_mdlref_basic')
load_system('sldemo_mdlref_counter')

检查内存中加载了哪些模型。

loadedModels = Simulink.allBlockDiagrams('model');
modelNames = get_param(loadedModels,'Name')
modelNames =

  2×1 cell array

    {'sldemo_mdlref_counter'}
    {'sldemo_mdlref_basic'  }

关闭 sldemo_mdlref_basic 模型,同时保持引用模型处于加载状态。

close_system('sldemo_mdlref_basic',0,'closeReferencedModels',false)

检查内存中加载了哪些模型。

loadedModels = Simulink.allBlockDiagrams('model');
modelNames = get_param(loadedModels,'Name')
modelNames =

    'sldemo_mdlref_counter'

关闭顶层模型会将其从内存中清除。默认情况下,由于它们共享一个窗口,因此对顶层模型使用 close_system 也会关闭引用模型并将其从内存中清除。将 'closeReferencedModels' 设置为 false 会使引用模型 sldemo_mdlref_counter 保持已加载状态。

输入参数

全部折叠

要关闭的模型或子系统的名称,或要关闭其对话框的模块的名称,指定为字符向量、字符向量元胞数组、字符串数组、句柄或句柄数组。不要使用文件扩展名。

示例: "vdp/Mu" 'vdp'

要关闭的模型的名称,指定为字符向量、字符向量元胞数组、字符串数组、句柄或句柄数组。不要使用文件扩展名。

使用当前文件名保存模型的选项,指定为 0 表示关闭而不保存,指定为 1 表示保存然后关闭。如果 sys 是数组,您可以提供一个字符来应用于数组中的所有模型。您也可以提供一个数值数组,其中的值与 sys 数组中的每个模型对应。

有关模型命名规则的信息,请参阅Choose Valid Model File Names

要保存到的文件,指定为字符向量、字符向量元胞数组或字符串数组。您可以在当前文件夹或完整路径名称中指定模型名称,带或不带扩展名均可。

当您指定不带扩展名的名称时,close_system 会保存为在您的 Simulink® 预设项中指定的文件格式。可能的模型扩展名有 .slx.mdl

有关模型命名规则的信息,请参阅Choose Valid Model File Names

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量后,但参量对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: close_system('mymodel','newmodel','closeReferencedModels',false,'ErrorIfShadowed',true,'OverwriteIfChangedOnDisk',true,'SaveModelWorkspace',true)

当您关闭顶层模型的窗口关闭所有引用模型的选项,以逗号分隔的对组形式指定,其中包含 'closeReferencedModels'truefalse'on''off'。在另一个窗口中打开的引用模型不受此设置的影响。要使引用模型保持已加载状态,请将此参量设置为 false

在新名称已在 MATLAB 路径或工作区中使用时返回错误的选项,以逗号分隔的对组形式指定,其中包含 'ErrorIfShadowed'truefalse'on''off'。要收到此错误,您必须使用 newsys 参量以新名称保存模型。要了解遮蔽文件,请参阅隐藏文件

用于保存模型时覆盖磁盘上文件(即使模型自加载后已修改)的选项,以逗号分隔的对组形式指定,其中包含 'OverwriteIfChangedOnDisk'truefalse'on''off'。默认情况下,如果在加载模型后文件在磁盘上发生了更改,close_system 会显示错误以防止覆盖磁盘上的更改。

通过使用 Simulink 预设项,您可以控制在磁盘上的文件发生更改时保存模型是否显示错误。在“Simulink 预设项”对话框的模型文件窗格中,在更改通知下,选择保存模型时。默认情况下此预设项为 on。

保存模型时保存模型工作区的选项,以逗号分隔的对组形式指定,其中包含 'SaveModelWorkspace'truefalse'on''off'。模型工作区 DataSource 必须为 MAT 文件。如果数据源不是 MAT 文件,保存模型将不保存工作区。请参阅 在模型工作区中指定数据源

版本历史记录

在 R2006a 之前推出

全部展开