Main Content

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

MATLAB Function レポート

MATLAB® 関数を使用する MATLAB Function ブロックまたは Stateflow® チャートを含む Simulink® モデルのシミュレート、更新、またはモデルからのコード生成を行うと、Simulink は、モデル内の MATLAB 関数ごとにレポートを生成します。このレポートを使用して、MATLAB 関数をデバッグし、それらの関数がコード生成に適していることを確認します。レポートには関数の変数および式の型情報が示されます。この情報は、エラー メッセージの発生元を特定したり、型の伝播ルールを理解したりするのに役立ちます。

Stateflow では、各 Stateflow チャートに対して、その中の MATLAB 関数の数に関係なく、レポートが 1 つ作成されます。

モデルに同一の MATLAB Function ブロックがある場合、それらの同一ブロックに対して 1 つのレポートが生成されます。

MATLAB Function レポートを開く

MATLAB Function レポートを開くには、次のいずれかの方法を使用します。

メモ

MATLAB Function レポートを最初に開いたときに、Simulink でモデルが自動的に更新されます。その後、ブロックの MATLAB コードに変更を加える場合は、レポートを再度開く前にモデルを更新しなければなりません。更新しない場合、レポートには変更が反映されません。[モデル化] タブで、[モデルの更新] を選択するか、Ctrl+D を押します。詳細については、ブロック線図の更新とシミュレーションの実行を参照してください。

MATLAB ソース コードの解析

[MATLAB ソース] ペインの [関数リスト] ビューでは、含まれているファイルで関数が整理されます。呼び出し構造に従って関数を可視化するには、[呼び出しツリー] ビューを使用します。

MATLAB Function レポートは読み取り専用です。関数を編集するには、[MATLAB ソース] ペインで関数の名前を選択し、[MATLAB で編集] をクリックします。

コード ペインで MATLAB 関数を表示するには、[MATLAB ソース] ペインで関数の名前をクリックします。コード ペインで、変数または式の上で一時停止すると、ツールヒントに、そのサイズ、型および実数/複素数に関する情報が表示されます。さらに、構文の強調表示は、MATLAB 構文要素と、関数が外部関数であるかどうか、引数が定数であるかどうかといった特定のコード生成属性を識別するのにも役立ちます。

外部関数

レポートは紫色のテキストで外部関数を識別します。ツールヒントは関数が外部関数であることを示しています。

定数引数

オレンジ色のテキストは、エントリポイント関数または特殊な関数へのコンパイル時の定数引数を示しています。ツールヒントにはその定数値が表示されます。

定数引数の値を把握することで、生成された関数シグネチャを理解することができます。また、コード生成で異なる定数引数値をもつ関数の特殊化が作成された場合に確認することもできます。

ワークスペースの変数に値をエクスポートするには、[エクスポート] アイコン をクリックします。

エラー メッセージと警告メッセージの表示

エラーと警告を表示するには、レポートの下部のペインで、[すべてのメッセージ] タブを開きます。エラーまたは警告に関するソース コードを強調表示するには、メッセージをクリックします。最初のメッセージに対処するのが最も効率よいアプローチです。その後のエラーや警告の多くは、最初のメッセージに関連して発生したものです。

MATLAB 変数の表示

選択した MATLAB 関数の変数に関する情報を表示するには、レポートの下部のペインで、[変数] タブを開きます。

変数テーブルには以下の情報が表示されます。

  • クラス、サイズ、実数/複素数

  • 固定小数点型のプロパティ

この情報は、型の不一致エラーなどのエラーをデバッグしたり、型の伝播を理解したりするのに役立ちます。

[変数] タブの視覚的なインジケーター

次の表では、変数テーブルで使用される記号、バッジおよびその他のインジケーターについて説明します。

変数テーブルの列インジケーター説明
名前展開アイコン変数には、展開アイコンをクリックすることで表示できる要素やプロパティがあります。
名前{:}異種混合 cell 配列 (すべての要素のプロパティは同じになります)。
名前{n}異種混合 cell 配列の n 番目の要素。
クラスv > nv は異なるクラス、サイズ、実数/複素数で再利用されます。数値 n は、一意のプロパティ セットをもつ再利用を特定します。名前が変更された変数で一時停止すると、クラス、サイズおよび実数/複素数を共有するこの変数のインスタンスのみがレポートで強調表示されます。同じ変数を異なるプロパティで再利用するを参照してください。
サイズ:n上限が n の可変サイズの配列。
サイズ:?上限なしの可変サイズの配列。
サイズイタリック実行中に次元によってサイズが変更されない可変サイズの配列。
クラス接頭辞 sparseスパース配列。
クラス接頭辞 complex複素数。
クラス

固定小数点型。

固定小数点プロパティを表示するには、バッジをクリックします。

プログラムからの MATLAB Function レポートへのアクセス

MATLAB Function レポートにアクセスするには、次の関数を MATLABFunctionConfiguration オブジェクトで呼び出します。

  • openReport は、ブロックの MATLAB Function レポートを開きます。

  • closeReport は、ブロックの MATLAB Function レポートを閉じます。

  • getReport は、ブロックの MATLABFunctionReport オブジェクトを返します。このオブジェクトからレポート情報をクエリするには、その Functions プロパティにアクセスします。このプロパティは coder.Function オブジェクトの配列です。coder.Function のプロパティ (MATLAB Coder)を参照してください。

たとえば、MATLAB Function ブロックを使用したカスタム機能の作成で説明されているモデル call_stats_block1MATLAB Function ブロック内の関数と変数を示すカスタム レポートを作成するには、次の手順に従います。

  1. MATLAB Function ブロックの MATLABFunctionConfiguration オブジェクトにアクセスします。

    config = get_param('call_stats_block1/MATLAB Function', ...
        'MATLABFunctionConfiguration');
  2. MATLAB Function ブロックの MATLABFunctionReport オブジェクトを作成します。

    report = getReport(config);
  3. レポート内の coder.Function オブジェクトにアクセスします。

    functions = report.Functions;
  4. カスタム レポートを作成します。

    for i = 1:numel(functions)
        fprintf('Function %s uses these variables:\n',functions(i).Name)
        variables = functions(i).Variables;
        for j = 1:numel(variables)
            fprintf('%d. %s -- %s\n',j,variables(j).Name,variables(j).Scope)
        end
        fprintf('\n')
    end
    Function stats uses these variables:
    1. mean -- Output
    2. stdev -- Output
    3. vals -- Input
    4. len -- Local
    
    Function avg uses these variables:
    1. mean -- Output
    2. array -- Input
    3. size -- Input

レポートの制限事項

  • 変数テーブルには varargin および varargout の個々の要素は表示されません。

  • ループの展開に関して完全な情報を表示するわけではありません。1 つの任意の反復のデータ型を表示します。

  • デッド コードに関する情報を表示しません。

参考

| | | |

関連するトピック