在Simulink中获取多个选定块的句柄

时间:2013-09-30 13:21:02

标签: matlab simulink

有没有办法使用simulink API获取所有选定块的句柄?

假设我使用鼠标选择了几个块,我怎样才能使用simulink API以数组或单元格的形式获取所有选定块的句柄?

使用gcbh,它只提供最近选定块的句柄。

基本上我想自动生成所有选定“Goto”块的相应“From”块,反之亦然。

Matlab版本:2010b

3 个答案:

答案 0 :(得分:6)

这将为您提供所有选定块的名称:

blockNames = find_system('Type', 'Block', 'Selected', 'on')

您应该能够通过迭代单元格数组并调用get_param(blockName, 'handle')来获取块的句柄:

for i = 1:length(blockNames)
    blockHandles(i)= get_param(blockNames{i},'handle');
end

答案 1 :(得分:2)

这不能直接回答问题,但如果您想自动生成“发件人”块,我建议您从文件交换中提取以下内容:

http://www.mathworks.co.uk/matlabcentral/fileexchange/40117-autofromtag

我以前使用它并且效果很好。

答案 2 :(得分:0)

如果您使用的是蒙面子系统,请确保将'LookUnderMasks'设置为'all'

find_system(gcs, ...
    'SearchDepth'   , 1,...
    'LookUnderMasks', 'all', ...
    'selected'      , 'on');