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 对组参数指定其他选项。

示例

全部折叠

打开模型 vdp,然后关闭它。

vdp
close_system

打开模型 vdp

vdp

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

关闭模块对话框

close_system('vdp/Mu');

打开一个模型,对其进行修改,然后用新名称保存模型并关闭它。

打开模型 vdp,并在其中添加一个模块。

vdp
block = add_block('vdp/Mu','vdp/Mu','MakeNameUnique','on');

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

close_system('vdp','myvdp');

此命令尝试将 vdp 系统用名称 'max' 保存到文件中,但返回错误,因为 'max' 是某个现有 MATLAB® 函数的名称。

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

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

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

open_system('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 数组中的每个模型对应。

有关模型命名规则的信息,请参阅模型名称

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

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

有关模型命名规则的信息,请参阅模型名称

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须显示在引号内。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN

示例: 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 Preferences 对话框的 Model File 窗格中,在 Change Notification 下,选择 Saving the model。默认情况下此预设项为 on。

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

兼容性注意事项

全部展开

R2019b 中的行为有变化

在 R2006a 之前推出