使用 Matlab 中的 find_system() 指令在 Simulink 模型中查找子系统

问题描述 投票:0回答:2

我试图找到特定级别的 Simulink 模型中存在的所有子系统,包括来自第三方库的子系统。然而,在结果中我从库中得到了一些值而不是子系统的名称。

使用说明:

find_system('Level1/Level2','SearchDepth',1,'LookUnderMasks','on','BlockType','SubSystem')

结果:

'Level1/Subsystem1'
'Level1/SubSystem2'
[1x11 char]
[1x90 char]
[1x34 char]
matlab simulink
2个回答
3
投票

这是因为

find_system
返回一个元胞数组或句柄向量,请参阅 文档

如果

sys
是路径名或路径名元胞数组,则
find_system
返回 它找到的对象的路径名元胞数组。如果
sys
是手柄或 句柄向量,
find_system
返回句柄向量 它找到的对象。如果省略
sys
,则
find_system
搜索所有 加载系统并返回路径名元胞数组。

在调用函数时使用输出参数,您将能够探索返回变量的内容,例如:

my_sys = find_system('Level1/Level2','SearchDepth',1,'LookUnderMasks','on','BlockType','SubSystem');

然后您应该能够看到

my_sys
中的内容并访问其内容。


2
投票

find_system
方法返回 simulink 模块的句柄。要获取子系统的名称,您必须使用
getfullname
函数来获取句柄的名称。

© www.soinside.com 2019 - 2024. All rights reserved.