SimulinkのGoto/Fromのタグ名を一括変更する

サブシステム・ブロックをコピーしたら、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”もマッチしてしまうので注意。

上記は基本形だ。場合に応じて、適宜追加の処理を加えれば良いだろう。