依存関係アナライザーは、プロジェクトまたはモデルに必要なファイルとツールボックスを特定します。解析は、モデル参照、サブシステム参照、リンクされたライブラリ、MATLAB® および C/C++
コード、Stateflow® チャート、データ ファイル、S-Function、要件ドキュメントといった、幅広い依存関係をカバーします。
依存関係アナライザーは、モデルまたはブロックのコールバック、.m
ファイルの S-Function などに MATLAB コードを検出すると、参照するファイルを識別しようとします。詳細については、解析の制限を参照してください。
MATLAB ルート フォルダー配下にあるファイルについては、依存関係アナライザーには必要な製品のみが表示されます。依存関係の解析は行いません。
依存関係アナライザーは、ユーザー定義のツールボックス内の依存関係を特定するほか、コード生成によって、またはモデル パラメーター内の MATLAB コードによって導入された依存関係を特定します。これらのオプションは、大規模な設計では時間がかかることがあるため、既定でオフになっています。
解析の範囲を指定するには、依存関係アナライザー ツールストリップで、[解析] をクリックし、以下のオプションを 1 つ以上選択します。
オプション | 既定の設定 | 説明 |
---|---|---|
C/C++ コード | オン | C/C++ コード ファイルによって導入された依存関係を解析します。 |
外部ツールボックス | オフ | ユーザー定義のツールボックス内の依存関係を解析します。 |
モデル パラメーター | オフ | モデル ブロック パラメーターの MATLAB コードによって導入された依存関係を解析します。 |
生成されたコードのトレーサビリティ | オフ | モデルから生成されたコードによって導入された依存関係を解析します。 |
依存関係アナライザーには、MATLAB コード解析に固有の次のような制限があります。
依存関係アナライザーは、関数の入力引数を、それがリテラル文字ベクトルまたは string であるときにのみ特定します。
load("mydatafile") load mydatafile
ファイル名を変数として定義して関数に渡した場合、依存関係アナライザーはその依存関係を特定できません。次の例では、コードが実行されないため、依存関係アナライザーは str
の値を持っていません。依存関係アナライザーは、依存関係が見つからないと報告する場合があります。
str = "mydatafile";
load(str);
load
に似た関数、たとえば、fopen
、xlsread
、importdata
、dlmread
、eval
、または imread
などにも適用されます。依存関係アナライザーは、常に自動的にタイプを判別するとは限りません。オブジェクト メソッドの呼び出し方法によっては、依存関係アナライザーがメソッドと関数を混同し、依存関係が見つからないと報告する場合があります。
MATLAB では、オブジェクト メソッドを 2 つの異なる方法で呼び出すことができます。たとえば、オブジェクト p
についてメソッド addFile
を呼び出す場合、次のように関数表記を使用できます。
p = currentProject;
addFile(p,"myfile");
p = currentProject;
p.addFile("myfile");
p
のタイプを明示的に宣言しない場合、依存関係アナライザーは、関数表記を使用したメソッドの呼び出しを、関数呼び出しと混同することがあります。アナライザーは addFile
を依存関係がないものとして報告します。この制限を回避するには、メソッドの呼び出しにドット表記を使用するか、関数内で arguments を使用して変数のタイプを明示的に宣言します。
function myfunction(p) arguments p matlab.project.Project end addFile(p,"myfile"); end
依存関係アナライザーでは、モデルが要求した特定のブロックセットまたはツールボックスをレポートしない可能性があります。
依存関係アナライザーは、Fixed-Point Designer™ など、どのファイルにも依存関係を導入しないブロックセットを検出できません。
解析で検出できない依存関係を含めるには、プロジェクトに依存関係を導入するファイルを追加します。モデルからプロジェクトを作成するには、モデルからのプロジェクトの作成を参照してください。
依存関係アナライザーは、マスクされたブロック内の動的なコンテンツをレポートしない可能性があります。
マスクされたブロックのパラメーターに基づき、動的なマスクによってマスク サブシステムが変更され、ブロックの依存関係が変化することがあります。このような動的なマスクがライブラリ内にある場合、依存関係アナライザーは動的な変更を検出することができません。
依存関係アナライザーは、MATLAB 関数ブロックから呼び出される Simulink® 関数をサポートしません。
依存関係アナライザーは、MATLAB をアクション言語として使用する Stateflow チャートをサポートしません。
一部の MathWorks® 製品やツールボックスでは、コードおよび Simulink ライブラリを共有しています。依存関係アナライザーは、それらすべてにおける依存関係をレポートすることがあります。
共有コードが使用されている場所を調べるには、[プロパティ] パネルの [製品] セクションで、[次の間での共有機能:] の下にある製品をポイントして、検索フォルダー アイコン をクリックします。