Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

プログラムにより複数のモデルのクローン検出と置換をループで実行

この例では、プログラムを使用して 1 つのループで複数のモデルを個別に操作し、モデルのクローンの検出と置換を行う方法を説明します。クローン検出 API の詳細については、プログラムによるサブシステム クローンの検出と置換を参照してください。

この例では、クローンを置換するためのサブシステム参照としてライブラリ ファイル clones_library を使用し、5 つの Simulink® モデルのクローンをプログラムで検出して置換する方法を説明します。

1.モデル ex_detect_clones_A ex_detect_clones_B ex_detect_clones_C ex_detect_clones_D ex_detect_clones_E clones_library を開きます。モデルおよびライブラリ ファイルを現在の作業ディレクトリに保存します。

2.モデルを追加する配列を作成します。

     modelList = {};

3.配列 modelList にモデルを追加します。

      modelList{end+1,1} = 'ex_detect_clones_A';
      modelList{end+1,1} = 'ex_detect_clones_B';
      modelList{end+1,1} = 'ex_detect_clones_C';
      modelList{end+1,1} = 'ex_detect_clones_D';
      modelList{end+1,1} = 'ex_detect_clones_E';
      modelList{end+1,1} = 'ex_detect_clones_F';

4.モデルの ResultsReplacementResultsequivalencyCheck の各オブジェクトを格納するコンテナーを定義します。

     cloneResultsStorage = containers.Map();
     cloneReplacementStorage = containers.Map();
     equivalencyCheckStorage = containers.Map();

5.Settings クラスから作成された cloneDetectionSettings オブジェクトにライブラリ ファイルを追加します。

     libName = 'clones_library';
     cloneDetectionSettings = Simulink.CloneDetection.Settings();
     cloneDetectionSettings = cloneDetectionSettings.addLibraries(libName);

6.ループを使用し、関数 Simulink.CloneDetection.findClones、関数 Simulink.CloneDetection.replaceClones、および関数 Simulink.CloneDetection.checkEquivalency を使用して、モデルを循環実行します。

     for modelIndex = 1:length(modelList)
          modelName = modelList{modelIndex};
         try
             cloneResults = Simulink.CloneDetection.findClones(modelName, cloneDetectionSettings);
             cloneResultsStorage(modelName) = cloneResults;
             cloneReplacementResults = Simulink.CloneDetection.replaceClones(cloneResults);
             cloneReplacementStorage(modelName) = cloneReplacementResults;
             equivalencyCheckResults = Simulink.CloneDetection.checkEquivalency(cloneReplacementResults);
             equivalencyCheckStorage(modelName) = equivalencyCheckResults;
         catch exception
         end
     end

個々のモデルについて、cloneResultsStoragecloneReplacementStorage、および equivalencyCheckStorage の各オブジェクトの結果にアクセスできます。詳細については、プログラムによるサブシステム クローンの検出と置換を参照してください。

関連するトピック