当我使用find_system(gcs,'BlockType','SubSystem')
时,它会返回不是子系统的东西(AFAIK)
就我而言,所谓的事情是
subsys L1 -x
和
SubsysX L2 - z
是子系统,但名称仅用于调试目的,因此我无法使用这些名称进行匹配。
为什么会出现[1x51 char]
和Sine
以及RealisesUID
?
我只希望子系统显示在模型浏览器树中。
'test_simulinkmodel/RealisesUID'
'test_simulinkmodel/subsys L1 - 1'
[1x51 char]
'test_simulinkmodel/subsys L1 - 1/Sine'
'test_simulinkmodel/subsys L1 - 1/Subsys1 L2 - 1'
[1x71 char]
[1x68 char]
'test_simulinkmodel/subsys L1 - 2'
[1x51 char]
'test_simulinkmodel/subsys L1 - 2/Sine'
'test_simulinkmodel/subsys L1 - 2/Subsys2 L2 - 1'
[1x71 char]
[1x68 char]
'test_simulinkmodel/subsys L1 - 3'
[1x51 char]
'test_simulinkmodel/subsys L1 - 3/Sine'
'test_simulinkmodel/subsys L1 - 3/Subsys3 L2 - 1'
[1x71 char]
[1x68 char]
编辑: 如果我选择包含库链接并包含具有掩码参数的系统,它们将显示在模型浏览器中。但是,find_system的默认值是'FollowLinks''off'和'LookUnderMasks'没有说。但是,即使我提供明确的off和none,它们仍会返回相同的结果。
答案 0 :(得分:2)
您可以将LinkStatus参数添加到find_system,以仅查找您自己的子系统,而不是库中的子系统。 find_system(gcs,'BlockType','SubSystem','LinkStatus','none')
。同样,你也可以添加'Mask'和'on'或'off'值来根据块上是否有掩码进行过滤。
“Sine”是您自己图书馆的子系统吗?如果您搜索“SubSystem”的“BlockType”,Simulink库中的正弦波块将不会显示。
答案 1 :(得分:0)
我怀疑Sine
块是一个子系统,如果你要查看掩码,你可能会找到一个S函数。您可以为SearchDepth
指定一个“find_system
”参数,或将“LookUnderMasks
”设置为“none
”(假设您的实际子系统subsys L1 -x
和{{1没有掩盖)。
http://www.mathworks.co.uk/help/simulink/slref/find_system.html
答案 2 :(得分:0)
您似乎在子系统中获得了所有子系统。根据am304的建议,您可以使用SearchDepth
选项限制搜索,但我通常会发现使用Parent
更容易限制搜索级别。在你的情况下
find_system(gcs,'Parent', 'test_simulinkmodel', 'BlockType', 'SubSystem');