アルゴリズム設計の基礎
MATLAB® アルゴリズムからコードを生成すると、ソフトウェアの設計、実装、テストを完全に MATLAB ワークスペース内で行えるようになります。次のことが可能です。
アルゴリズムがコード生成に適しているかを検証できます。
効率的で読みやすく、コンパクトな C/C++ コードを自動的に生成できます。そのため、手作業で変換する必要がなくなり、コードにエラーを組み込むリスクを最小限に抑えられます。
MATLAB コードにおいて、データ型管理、メモリ使用、速度などデスクトップおよび組み込みアプリケーションに固有の要件を考慮するように設計内容を変更することができます。
生成されたコードをテストし、変更後のアルゴリズムが元の MATLAB アルゴリズムと機能的に同じであることを簡単に検証できます。
MEX 関数を生成して、MATLAB アルゴリズムを高速化したり、固定小数点 MATLAB コードを高速化したりできます。
MATLAB コードからハードウェア記述言語 (HDL) を生成します。
関数
coder.allowpcode | P コード ファイルからのコード生成の制御 |
coder.ceval | 外部 C/C++ 関数の呼び出し |
coder.cinclude | 生成コードにヘッダー ファイルをインクルードする |
coder.cstructname | 生成されたコードでの C 構造体に名前を付ける |
coder.extrinsic | 外部として関数を宣言し MATLAB で実行する |
coder.inline | 生成されたコードで現在の関数のインライン化を制御する |
coder.inlineCall | Inline called function in generated code (R2024a 以降) |
coder.load | MAT ファイルまたは ASCII ファイルからコンパイル時の定数を読み込む |
coder.nonInlineCall | Prevent inlining of called function in generated code (R2024a 以降) |
coder.nullcopy | コード生成での初期化されていない変数の宣言 |
coder.opaque | 生成コード内の変数の宣言 |
coder.ref | 参照渡しするデータを示す |
coder.screener | 関数がコード生成に適しているかどうか判別 |
coder.rref | 参照渡しする読み取り専用データを示す |
coder.target | コード生成ターゲットが指定されたターゲットかどうかを判別 |
coder.unroll | 各ループ反復でループ本体のコピーを作成することで、for ループを展開 |
coder.varsize | 可変サイズのデータの宣言 |
coder.wref | 参照渡しする書き込み専用データを示す |
coder.updateBuildInfo | ビルド情報オブジェクト RTW.BuildInfo の更新 |
クラス
coder.ExternalDependency | 外部コードへのインターフェイス |
coder.BuildConfig | コード生成時のビルド コンテキスト |
トピック
- MATLAB アルゴリズムからのコード生成に適する場面
アプリケーション用のコードを生成するかどうかを決定します。
- 使用するコード生成機能の選択
アプリケーションのコード生成機能を選択します。
- MATLAB から C/C++ コードを生成するための必要条件
MATLAB コードからコードを生成するには、MATLAB Coder™ 製品と C/C++ コンパイラが必要です。
- 生成されたコードと MATLAB コードの相違点
生成された C/C++ コードは、元の MATLAB ソース コードと動作が異なる場合があります。
- コード生成の準備状態ツール
コード生成の準備状態ツールでは、MATLAB コード内にコード生成でサポートされない機能や関数がないかどうかを調べることができます。
- コード生成の準備状態ツールを使用したコードのチェック
コマンド ラインまたは現在のフォルダー ブラウザーからコード生成の準備状態ツールを実行します。
- C/C++ コード生成でサポートされている MATLAB 言語機能
コード生成でサポートされている MATLAB 言語機能と関数を使用します。
- コード生成用の MATLAB コード設計における注意事項
コード生成用の MATLAB の記述時に、設計における制約を考慮します。
トラブルシューティング
外部 C/C++ 関数呼び出しの出力タイプを定義する。