MATLAB コード解析
C/C++ コード生成を妨げる MATLAB® コードでの問題の特定と修正
MATLAB コードからの C/C++ コード生成の成功は、コード生成の規則と制限への準拠に左右されます。たとえば、MATLAB コードでは、コード生成がサポートされている MATLAB 関数とツールボックス関数のみを使用しなければなりません。C/C++ コード生成の前に MATLAB コードの問題を特定して修正するために、コード アナライザーおよびコード生成の準備状態ツールを使用できます。MATLAB コードによって、予想どおりに動作する生成されたコードが作成されることを確認するには、MATLAB 環境で実行可能でありテスト可能な MEX 関数を生成して実行します。
関数
coder.runTest | MATLAB 関数の呼び出しを MEX 関数の呼び出しで置き換えてテストを実行する |
coder.screener | 関数がコード生成に適しているかどうか判別 |
getLineColumn | コード生成に関連する MATLAB コードの最初と最後の位置の特定 |
textReport | Export code generation readiness report to base workspace as a character vector (R2022a 以降) |
プロパティ
coder.CallSite のプロパティ | MATLAB コード内の関数呼び出しサイトに関する情報 (R2022a 以降) |
coder.CodeFile のプロパティ | コード生成に関連する、テキストを含むファイルの記述 |
coder.File のプロパティ | コード生成に関連する、テキストを含まないファイルの記述 |
coder.Message のプロパティ | コード生成の準備状態の解析時またはコード生成時に生成されたメッセージの記述 |
coder.ScreenerInfo Properties | Code generation readiness information (R2022a 以降) |
トピック
コード生成の準備
- エントリポイント関数の特定および MATLAB コードのチェック
コード生成前にエントリポイント関数を特定して MATLAB コードにエラーがないかチェックする。 - コード生成の準備状態ツール
コード生成の準備状態ツールでは、MATLAB コード内にコード生成でサポートされない機能や関数がないかどうかを調べることができます。
デバッグ
- MEX 関数を使用した MATLAB コードの問題の確認
MEX 関数を使用して、生成されたコードが元の MATLAB コードと同じ機能を提供することを確認する。 - デバッグ方法
コード生成に適さないコードを検出して修正する手法を選択します。 - Debugging Generated MEX Code
Debug MEX code generated from your MATLAB code. - Debug Generated C/C++ Code
Debug standalone C/C++ code generated from your MATLAB code. - MATLAB プロファイラーを使用した MEX 関数のプロファイリング
生成された MEX 関数の実行時間とコード カバレッジを MATLAB プロファイラーで確認する。
トラブルシューティング
- エラーの解決: コード生成でサポートされていない関数
サポートされていない MATLAB 関数のコード生成に関する問題のトラブルシューティング。 - 問題の解決: 変数は使用前に完全に定義する必要がある
構造体フィールドやクラス プロパティなどの変数が使用前に定義されていない場合のコード生成エラーをトラブルシューティングする。 - 問題の解決: cell 配列の要素は使用前に完全に定義する必要がある
cell 配列の要素が使用前に定義されていない場合のコード生成エラーをトラブルシューティングする。