MATLAB Coder を使用したコード生成の概要
MATLAB® Coder™ ソフトウェアを使用して、ソース コード、スタティック ライブラリ、ダイナミック リンク ライブラリ、または実行可能ファイルとして MATLAB コードから C/C++ コードを生成できます。生成されたコードは、MATLAB 環境外のアプリケーションに埋め込むことができます。
MATLAB Coder を使用して、MATLAB 高速化用に設計された C/C++ MATLAB 実行可能 (MEX) 関数を生成することもできます。C/C++ は MATLAB コードよりも高速であるため、高速化された MEX 関数を生成して MATLAB 環境で使用することで、MATLAB コードを高速化できます。
動作する最適化された C/C++ コードを MATLAB コードから生成するには、トラブルシューティングとコード生成のサイクルを複数回実行する必要がある場合があります。
コード生成用の MATLAB コードの作成
C/C++ コードを生成する場合、コード ジェネレーターは、動的に型指定される MATLAB コードを静的に型指定される C/C++ コードに変換します。動的に型指定される言語では、変数のクラスおよびサイズが実行時に変更される可能性があります。C および C++ は静的に型指定される言語であるため、コード ジェネレーターはコードを生成するときに変数の型を決定する必要があります。コード生成中に発生するエラーの多くは、コード ジェネレーターが動的に型指定された MATLAB 変数を静的に型指定された C/C++ 変数に変換しようとしたときに発生します。コード生成用の MATLAB コードを作成するときに次のベスト プラクティスに従うことで、ごく一般的なコード生成エラーを回避できます。
変数を使用する前に、すべての変数のクラスとサイズを定義する。
インデックスを付ける前に配列を事前に割り当てる。
MATLAB 関数および言語機能のコード生成サポートを確認する。
これらのベスト プラクティスの詳細については、C/C++ コード生成のための変数定義のベスト プラクティス、コード生成のためのデータの定義に関する考慮事項、およびC/C++ コードの生成でサポートされている関数およびオブジェクトを参照してください。
コード生成のワークフロー
始める前に、サポートされているコンパイラをインストールしてください。サポートされているコンパイラの最新のリストについては、Supported and Compatible Compilers を参照してください。
コードを生成するときは、次の手順に従います。
エントリポイント関数の特定および MATLAB コードのチェック — 1 つ以上のエントリポイント関数を選択し、MATLAB コードがコード生成用に準備できているかを確認して、コード生成に備えます。
エントリポイント関数の入力の型の指定 — エントリポイント関数に入力がある場合は、その入力のクラスとサイズを指定します。入力の型は、MATLAB Coder アプリ、コマンド ライン、またはエントリポイント関数で指定できます。
MEX 関数を使用した MATLAB コードの問題の確認 — スタンドアロン C/C++ コードまたは高速化された MEX 関数を生成する前に、MATLAB コード内に問題がないか確認します。この手順により、生成されたコードでは検出がはるかに困難な問題を検出して修正できます。
生成された C/C++ および MEX コードの最適化 — オプションで、生成されたコードの実行速度やメモリ使用量を最適化できます。最適化手法を実装した後、MATLAB Coder コード内に問題がないか再確認します。
Generate C/C++ Code — スタンドアロン C/C++ コードまたは高速化された MEX 関数を生成します。