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

Finding SubSystems in a Simulink model using find_system() instruction in Matlab

我正在尝试查找特定级别的 Simulink 模型中存在的所有子系统,包括来自第三方库的子系统。但是结果我得到了一些值而不是库中子系统的名称。请问有人可以帮忙吗??

使用的指令:

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

结果:

'Level1/Subsystem1'
'Level1/SubSystem2'
[1x11 char]
[1x90 char]
[1x34 char]

感谢任何帮助。

谢谢。

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

这是因为 find_system returns 元胞数组或句柄向量,请参阅 documentation:

If sys is a pathname or cell array of pathnames, find_system returns a cell array of pathnames of the objects it finds. If sys is a handle or a vector of handles, find_system returns a vector of handles to the objects that it finds. If sys is omitted, find_system searches all loaded systems and returns a cell array of pathnames.

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

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

然后您应该能够看到 my_sys 中的内容并访问其内容。