C/C++ コードの生成
コード生成用に MATLAB® コードを準備して入力タイプを指定し、コードに問題がないか確認したら、スタンドアロン C/C++ コードや高速化された MEX 関数を生成できます。コード生成のワークフローを参照してください。
スタンドアロン C/C++ コードの生成
スタンドアロン C/C++ コードを生成するには次を行います。
MATLAB Coder™ アプリで、MATLAB Coder ツールストリップの [出力タイプ] リストから [スタティック ライブラリ (.lib)]、[ダイナミック ライブラリ (.dll)]、または [実行可能ファイル (.exe)] を選択します。その後、[コード生成] ボタンをクリックします。
コマンド ラインで、エントリポイント関数を
codegen関数に渡し、-configオプションを使用してスタンドアロン C/C++ 出力タイプを指定します。コード生成およびビルド設定の構成を参照してください。
スタンドアロン C/C++ コードの生成後、次のことが可能です。
スタンドアロン C/C++ 実行可能ファイルを作成し、このアプリケーションをターゲット プラットフォームに展開する。
生成されたソース コードまたはライブラリを既存の C/C++ プロジェクトに統合する。
ツールチェーンを使用して組み込みマイクロプロセッサで生成コードを実行する。
別の開発環境への転送用に生成コードをパッケージ化する。
詳細については、生成コードの展開および他の開発環境向けのコードのパッケージ化を参照してください。
高速化された MEX 関数の生成
高速化された MEX 関数を生成するには次を行います。
MATLAB Coder アプリで、MATLAB Coder ツールストリップの [出力タイプ] リストから [MEX] を選択します。その後、[コード生成] ボタンをクリックします。
コマンド ラインで、エントリポイント関数を
codegen関数に渡し、-configオプションを使用して MEX 出力を指定します。コード生成およびビルド設定の構成を参照してください。
高速化された MEX 関数を生成する前に次を行います。
使用可能な最適化手法を確認する。特に、
forループやparforループの展開、小さい関数のインライン化、変数の参照渡しを検討します。生成された C/C++ および MEX コードの最適化を参照してください。実行時チェックを無効にする。実行時チェックを無効にするのは、コード生成のワークフローに従って MATLAB コードに問題がないか確認した場合だけにしてください。実行時チェックを無効にするには、実行時チェックの制御を参照してください。
高速化された MEX 関数の生成後、その MEX 関数を MATLAB で呼び出すことができます。MEX 関数の呼び出しを参照してください。MATLAB プロファイラーを使用することで、生成された MEX 関数の時間がかかる部分を特定し、さらなる高速化の機会を探ることもできます。MATLAB プロファイラーを使用した MEX 関数のプロファイリングを参照してください。
高速化された MEX 関数は、さまざまなツールボックスでアプリケーションやシミュレーションを高速化するために使用できます。以下に例を示します。
リアルタイムのオーディオ。固定小数点シミュレーションの速度の向上 (Fixed-Point Designer)を参照してください。
ピクセルストリーミングの動画処理。MATLAB Coder を使用したピクセルストリーミング設計の高速化 (HDL Coder)を参照してください。
通信アルゴリズムのシミュレーション。Simulation Acceleration Using MATLAB Coder and Parallel Computing Toolbox (Communications Toolbox)を参照してください。
スタンドアロン アプリケーションの展開。生成されたコードを使用した MATLAB Compiler で展開されるアプリケーションの高速化を参照してください。
参考
トピック
- アプリケーションにおける C の main の例の使用
- 原子のシミュレーションへの動的メモリ割り当ての使用
- 跳ねるボールのシミュレーションを高速化する MEX コードの生成
- SIL and PIL Verification for Deployment on Raspberry Pi (Embedded Coder)
- MATLAB Coder を使用したコード生成の概要
- C++ コード生成
- MATLAB ソース コードへの生成された C/C++ コードのトレース
- MATLAB アルゴリズムを高速化するために MEX 関数を使用する際のベスト プラクティス