サブシステム・ブロックをコピーしたら、Goto/Fromタグ名がダブってしまった、なんてことはよくあることかも知れない。
特定のブロックのGoto/FromタグをMATLABスクリプトで一括変更する例をメモしておこう。
基本形は以下のようなスクリプトになると思う:
%%
modelName = "RootModel/blockPath";
blockPaths = find_system(modelName, 'RegExp', 'on','BlockType', '(Goto|From)$');
pathNum = numel(blockPaths);
%%
goto_suffix = "_fuga";
for ii = 1:pathNum
blockName = blockPaths{ii};
oldVal = get_param(blockName, 'GotoTag');
newVal = oldVal + goto_suffix;
set_param(blockName, 'GotoTag', newVal);
end
%%
find_systemで正規表現を有効にして、GotoとFromを一括して処理しているのがミソかも。 "(Goto|From)$"
のようにしておかないと、”FromWorkspace”もマッチしてしまうので注意。
上記は基本形だ。場合に応じて、適宜追加の処理を加えれば良いだろう。