Main Content

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

アプリを使用した実行時の問題の確認

MATLAB® コードのスタンドアロン C/C++ コードを生成する前に、エントリポイント関数から MEX 関数を生成することをお勧めします。MEX 関数を実行することにより、生成されたコード内では診断が困難な実行時エラーを検出して修正できるようになります。また、MEX が元の MATLAB コードと同じ機能を提供していることを確認しやすくなります。

MATLAB Coder™ アプリで、MATLAB コードの MEX 関数を生成して実行するには、[実行時の問題の確認] ステップを実行します。

  1. エントリポイント関数を呼び出す関数またはスクリプトを記述します。[入力の型を定義] ステップで入力の型を自動的に定義するために使用するのと同じテスト ファイル (複数でも可) を使用できます。

  2. [ソース ファイルの選択] ステップと [入力の型を定義] ステップを完了します。[入力の型を定義] ページで、[次へ] をクリックして [実行時の問題の確認] ステップに進みます。

  3. テスト ファイルを指定します。前のステップでは、入力の型を自動的に生成した場合、ダイアログ ボックスにテスト ファイルが自動的に設定されます。テスト ファイルの代わりに、エントリポイント関数を呼び出すコードを入力できます。ただし、テスト ファイルを指定することをお勧めします。

  4. [問題の確認] をクリックします。アプリにより MATLAB 関数から MEX 関数が生成されます。MATLAB エントリポイント関数の呼び出しを生成された MEX 関数の呼び出しで置き換えたうえで、指定したテストが実行されます。[エラー] タブには MEX の生成またはビルド エラーが報告されます。[テスト出力] タブには MEX 実行時エラーが報告されます。

  5. エラーが報告される場合に MATLAB コードを編集するには、[エラーの表示] をクリックします。

  6. 問題の修正後にテストに戻るには、[問題の確認] をクリックします。

MATLAB Coder アプリは、MATLAB Online™ でサポートされていません。

MATLAB 行の実行回数の収集

アプリが MEX 関数を実行すると、MATLAB コードの行に対応する MEX コードの実行回数がカウントされます。問題が検出されない場合、これらの行の実行回数が表示されます。行の実行回数は、MATLAB コードがテストでどのように実行されているかを知るために役立ちます。今後のテストで必要なデッド コードまたはコードのセクションを特定できます。MATLAB コードの行の実行回数の収集および表示を参照してください。

並列ループのための JIT コンパイルの無効化

既定の設定では、アプリは MEX 関数の生成を高速化するために Just-In-Time (JIT) コンパイルの使用を試みます。JIT コンパイルは、カスタム コードや OpenMP ライブラリの使用など、特定のコード生成機能やオプションと互換性がありません。アプリで JIT コンパイルを使用できない場合、C/C++ MEX 関数が代わりに生成されます。コードで parfor を使用し、[可能な場合は OpenMP ライブラリを有効にする][はい] に設定されている場合、アプリは JIT コンパイルを使用して parfor ループを for ループとして処理します。[実行時の問題の確認] ステップで for ループを並列実行する場合は、JIT コンパイルを無効にします。

  1. [実行時の問題の確認] ページで [設定] をクリックします。

  2. [すべての設定] タブで、[[実行時の問題の確認] で JIT コンパイルを使用][いいえ] に設定します。

関連するトピック