Main Content

getSimulinkBlockHandle

从模块路径中获取模块句柄

说明

示例

handle = getSimulinkBlockHandle(path) 返回由 path 指定的模块(如果存在于加载的模型或库中)的数值句柄。如果找不到该模块,则返回 -1。根据需要解析库链接。

使用 getSimulinkBlockHandle 返回的数值句柄,在对 get_paramset_param 的后续调用中操作该模块。这种方法比使用完整的模块路径多次调用这些函数更高效。不要试图只使用句柄的数值(例如 5.007),因为您通常需要指定的位数远远超过 MATLAB® 显示的位数。要将句柄赋给变量,并使用该变量名称指定模块。该句柄仅适用于当前 MATLAB 会话。

使用 getSimulinkBlockHandle 检查模块路径是否有效。这种方法比在 try 语句中调用 get_param 更高效。

示例

handle = getSimulinkBlockHandle(path,true) 尝试加载包含指定模块 path 的模型或库,然后检查该模块是否存在。如果未找到模型或库,不会返回错误。即使该函数找不到指定路径的模块,通过这种方式加载的任何模型或库仍将保留在内存中。

示例

全部折叠

如果您要进行多个函数调用且这些调用要求指定模块作为输入参量,请考虑使用模块句柄。此示例说明如何获得模块句柄。

打开示例。然后,加载 f14 模型。

load_system('f14')

获取名为 Pilot 的 Signal Generator 模块的句柄。

h=getSimulinkBlockHandle('f14/Pilot')
h = 556.0021

您可以在后续的函数调用中使用该句柄,例如,对 get_paramset_param 函数的调用。

使用模块句柄获取 Wave form 参数的值。

get_param(h,'WaveForm')
ans = 
'square'

使用模块句柄将 Wave form 参数的值设置为 Sine

set_param(h,'WaveForm','Sine')

要查看更改,请再次获取 Wave form 参数的值。

get_param(h,'WaveForm')
ans = 
'sine'

此示例说明如何加载模型,并通过一次函数调用获得该模型中某模块的句柄。

打开示例。然后,加载 f14 模型,并通过对 getSimulinkBlockHandle 函数的一次调用获得名为 Pilot 的模块的句柄。

h = getSimulinkBlockHandle('f14/Pilot',true)
h = 595.0023

您可以在后续的函数调用中使用该句柄,例如,对 get_paramset_param 函数的调用。

使用模块句柄获取 Wave form 参数的值。

get_param(h,'WaveForm')
ans = 
'square'

getSimulationBlockHandle 函数返回在函数输入参量中指定的模块的句柄。有效句柄数大于零。如果函数找不到该模块,将返回 -1

此示例说明如何使用 getSimulationBlockHandle 函数检查模型是否已加载以及是否包含特定模块。

检查模型 f14 是否已加载并且包含名为 Pilot 的模块。

Check=getSimulinkBlockHandle('f14/Pilot') > 0
Check = logical
   0

如果 Check 的值为 0,则 f14 模型未加载,或 f14 模型不包含名为 Pilot 的模块。

如果 Check 的值为 1,则模型已加载,并且模型包含名为 Pilot 的模块。

输入参数

全部折叠

模块路径名称,指定为字符向量或字符向量元胞数组。

示例: 'f14/Pilot'

数据类型: char

输出参量

全部折叠

模块的数值句柄,以双精度值或双精度值数组形式返回。有效句柄数始终大于零。如果函数找不到该模块,将返回 -1。如果 path 输入是字符向量元胞数组,则输出是句柄数值数组。

数据类型: double

版本历史记录

在 R2015a 中推出

另请参阅

|