最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

coder.screener

関数がコード生成に適しているかどうか判別

説明

coder.screener(fcn) は、エントリ ポイント MATLAB® 関数 fcn を解析します。これは、コード生成の準拠問題として、サポートされない関数および言語機能を特定します。コード生成の準拠問題をレポートに表示します。fcn が MathWorks® 関数以外の関数を直接的または間接的に呼び出す場合、coder.screener はこれらの関数を解析します。MathWorks 関数は解析しません。coder.screener がすべてのコード生成の問題を検出できるとは限りません。状況によっては、coder.screener が誤ったエラーをレポートする場合があります。

coder.screener はコード ジェネレーターが自動的に外部関数として扱う関数をレポートしません。このような関数の例として、plotdisp、および figure が挙げられます。外部関数を参照してください。

coder.screener(fcn_1,...,fcn_n) はエントリ ポイント関数 (fcn_1,...,fcn_n) を解析します。

すべて折りたたむ

関数 coder.screener は、コード生成でサポートされない関数の呼び出しを特定します。エントリ ポイント関数 foo1 と、foo1 が呼び出す関数 foo2 の両方をチェックします。

関数 foo2 を記述して、ファイル foo2.m に保存します。

function out = foo2(in)
  out = eval(in);
end

foo2 を呼び出す関数 foo1 を記述します。foo1 をファイル foo1.m に保存します。

function out = foo1(in)
  out = foo2(in);
  disp(out);
end

foo1 を解析します。

coder.screener('foo1')

コード生成の準備状態のレポートに、サポートされない MATLAB 関数呼び出しの概要が表示されます。関数 foo2 が、サポートされない MATLAB 関数を 1 つ呼び出しています。

レポートで [コード構造] タブをクリックして、[MATLAB 関数の表示] チェック ボックスを選択します。

このタブには、各ファイルの相対サイズと各ファイルがコード生成に適している度合いを示す円グラフが表示されます。この場合、レポートでは以下のことが示されます。

  • foo1.m は緑色で表示され、コード生成に適していることが示されます。

  • foo2.m は黄色で表示され、重要な変更が必要なことが示されます。

  • コード生成の準備状態のスコアは、foo1.m が 4、foo2.m が 3 に割り当てられています。スコアは 1 ~ 5 のスケールに基づきます。1 は重要な変更が必要なことを示し、5 はコード生成の準備状態のツールで問題が検出されなかったことを示します。

  • 呼び出しツリーを表示します。

レポートの [概要] タブは、foo2.m がコード生成でサポートされていない関数 eval の呼び出しを 1 つ含んでいることを示しています。foo2.m 用の MEX 関数を生成するには、外部関数 eval の呼び出しを実行するようコードを変更します。

function out = foo2(in)
  coder.extrinsic('eval');
  out = eval(in);
end

コード生成の準備状態ツールを再び実行します。

coder.screener('foo1')

レポートには、関数 eval がコード生成でサポートされないというフラグが示されなくなっています。foo1 用の MEX 関数を生成すると、コード ジェネレーターは実行用の eval を MATLAB に送信します。スタンドアロン コード生成の場合、コード ジェネレーターは eval のコードを生成しません。

関数 coder.screener はコード生成でサポートされない MATLAB データ型を特定します。

MATLAB カレンダー期間配列データ型が含まれる関数 myfun を書き込みます。

function out = myfun1(A)
out = calyears(A);
end

myfun を解析します。

coder.screener('myfun1');

コード生成の準備状態のレポートに、calyears データ型はコード生成でサポートされないことが示されます。

このレポートには、コード準備状態スコア 3myfun1 に割り当てられています。コードを生成する前に、報告された問題を修正しなければなりません。

入力引数

すべて折りたたむ

解析するエントリ ポイント MATLAB 関数の名前。文字ベクトルまたは string スカラーとして指定します。

例: coder.screener('myfun1');

データ型: char | string

解析するエントリ ポイント MATLAB 関数の名前のコンマ区切りリスト。文字ベクトルまたは string スカラーとして指定します。

例: coder.screener('myfun1','myfun2');

データ型: char | string

制限

  • 関数 coder.screenerMATLAB Online™ でサポートされていません。

ヒント

  • coder.screener を使用する前に、コード アナライザーにより特定される問題を修正してください。

  • コードを生成する前に、coder.screener を使用して関数がコード生成に適していることを確認してください。検出された問題をすべて解決します。

  • coder.screener がすべての問題を検出できるとは限らず、誤ったエラーをレポートする場合もあります。したがって、MEX 関数を生成してコードがコード生成に適しているかを確認してから C コードを生成してください。

  • coder.screener はコード ジェネレーターが自動的に外部関数として扱う関数をレポートしません。このような関数の例として、plotdisp、および figure が挙げられます。外部関数を参照してください。

R2012b で導入