如何在Simulink模型中查找所有MATLAB功能块

时间:2017-02-01 16:56:07

标签: matlab simulink

我想知道如何在Simulink模型中查找所有MATLAB function块。 在我知道有很多MATLAB function块的模型中,我尝试了以下命令:

find_system(myModel,'LookUnderMasks','on','FollowLinks','on','BlockType','MATLAB Function')

但是,此命令返回一个空单元格数组。如果我尝试这样的事情:

find_system(myModel,'LookUnderMasks','on','FollowLinks','on','BlockType','Gain')

,我收到了很多结果。 “MATLAB函数”是一个实际的BlockType还是还有另一个术语?

2 个答案:

答案 0 :(得分:1)

您需要使用以下内容定义搜索深度:

h=find_system(myModel,'SearchDepth',N, 'regexp', 'on', 'FollowLinks','on','Findall','on','LookUnderMasks','all',  'BlockType','Gain');

指定N,搜索到的块越深,N就越高。

如果这不起作用,请告诉我。

答案 1 :(得分:1)

您可以使用以下代码查找所有MATLAB功能块。

S = sfroot();

% Get block handles
B = find(sfroot, '-isa','Stateflow.EMChart');

这将搜索所有打开的模型并返回Stateflow.EMChart类型的对象列表。您可以查看这些对象的Path属性,以将列表缩减为所需的模型。