MATLAB Coder

主な機能

  • ANSI/ISO に準拠した C コードと C++ コードの生成
  • 固定小数点と浮動小数点の演算対応の MEX 関数の生成
  • エントリ ポイント、入力データのプロパティ、およびその他のコード生成設定オプションを指定する MATLAB Coder アプリ。
  • 可変サイズ データ対応の静的または動的なメモリ割り当て
  • Communications System ToolboxComputer Vision System ToolboxDSP System Toolbox、および Phased Array System Toolbox™ の多くの関数や System object に対するコード生成のサポート
  • 行列演算、サブスクリプト、制御構文 (if、switch、for、while)、構造体といった、一般的な MATLAB 言語機能のサポート

MATLAB Coder は Simulink Coder および Embedded Coder と連携して、MATLAB コードを含む Simulink® モデルから C コードを生成します。生成した C コードは次の目的に使用できます。

  • スタンドアロンの実行
  • 他のソフトウェアとの統合
  • MATLAB アルゴリズムの高速化
  • 組込み実装
MATLAB Coder project manager interface and code generation report showing the generated C code.
MATLAB Coder プロジェクト管理インターフェイス (左) と、生成された C コードを示すコード生成レポート (右)。

コード生成のための MATLAB 言語サブセット

MATLAB Coder は、通常設計エンジニアが大規模システムのコンポーネントとしてアルゴリズムを開発するために使用する、MATLAB 言語のサブセットからコードを生成します。サポートされているサブセットには、MATLAB の 400 種類以上の演算子と関数 (英語) が含まれています。

Aerospace ToolboxFixed-Point Designer™Image Processing ToolboxSignal Processing Toolbox、および Statistics Toolbox™ からのコード生成では、一部の関数がサポートされています。また MATLAB Coder では、Communications System ToolboxComputer Vision System ToolboxDSP System Toolbox、および Phased Array System Toolbox™ の多くの System object からのコード生成をサポートしています。

MATLAB Coder は、アルゴリズムの開発のために、広範囲の MATLAB 言語属性をサポートしています。これには次のものが含まれます。

永続変数、グローバル変数、行列演算、N 次配列、サブスクリプト、フレームなどの行列と配列

複素数、整数一致、単精度と倍精度、固定小数点演算、文字、構造体、数値クラス、可変サイズ データなどのクラスとデータ タイプ

MATLAB プログラム制御構文 (if、for、while、switch)、算術演算子、比較演算子、論理演算子などのプログラミングの構成要素

関数ハンドル、サブ関数、MATLAB 関数のサブセット、可変長の入出力引数のリスト、MATLAB 関数の呼び出し機能などの関数

コード生成でサポートされている MATLAB 言語属性 (英語) の一覧をご覧ください。

MATLAB Coder の使用事例

MATLAB Coder により、設計エンジニアが MATLAB でアルゴリズムを開発して、読み取りと移植が可能な C/C++ コードを生成することができます。生成されたコードを使用して、次の作業を実行できます。

  • MATLAB アルゴリズムを PC 上のスタンドアロン実行ファイルとしてプロトタイプしてから、ソフトウェア エンジニアに設計仕様としてコミュニケーションする
  • MATLAB コードを、コンパイルされた C コードや C++ コードを呼び出す、自動生成された MATLAB 実行ファイル (MEX 関数) に置き換えて、シミュレーションの一部を高速化
  • MATLAB アルゴリズムを、コンパイルされたライブラリ コンポーネントとして、カスタム シミュレーターなどの他のソフトウェアに統合
  • MATLAB アルゴリズムを組込みプロセッサーに実装して検証
MATLAB Coder use cases.
MATLAB Coder の使用事例

MATLAB からのコード生成

MATLAB アルゴリズムを C コードに変換するには、実装の要求仕様を指定する必要があります。MATLAB Coder では、MATLAB 言語の開発環境上で、以下のような繰り返し作業を行うことが可能です。MEX 関数を生成することでアルゴリズムがコード生成に適合していることを確認します。まお MEX 関数は MATLAB 内で実行できるようにコンパイルされたコードをラップしたものです。MATLAB Coder では、MATLAB アルゴリズムをコード生成に適合させるために、修正する必要のあるエラーすべてを示すレポートが生成されます。このように、MATLAB アルゴリズムがコード生成に適したものになるまで、エラーの修正と MEX 関数の生成を繰り返し行います。

C または C++ のソース コードのいずれか、または MATLAB アルゴリズムからパフォーマンスが最適になるように調整された MEX 関数を生成できます。

C または C++ のソース コードによって、次の作業を実行できます。

  • PC でのプロトタイプ
  • ライブラリの作成
  • 組込みコードとしての実装

MEX 関数は、次の目的で、元の MATLAB コードの代わりに呼び出すことができます。

  • コンパイルしたコードを MATLAB に戻して検証
  • 実行の高速化
Three-step iterative workflow for generating code from MATLAB using  MATLAB Coder.
MATLAB Coder を使用して MATLAB からコードを生成する、3 つのステップの繰り返しワークフロー。

Simulink Coder、Embedded Coder と一緒に MATLAB Coder を使用

MATLAB コードを Simulink モデルに統合するためにシミュレーションとコード生成のための MATLAB Function ブロックを用いることによって、MATLAB サブセットで作成した MATLAB アルゴリズムを追加できます。Simulink Coder では、MATLAB コードを含むこれらの Simulink モデルからコードを生成できます。

Radar tracking model in Simulink with a Kalman filtering algorithm that is written in MATLAB and called using the MATLAB Function block.
Simulink のレーダー追跡モデル。このモデルは、MATLAB で作成され、MATLAB Function ブロックを使って呼び出された、Kalman フィルター アルゴリズムを実装します。

Embedded Coder は、サポートされている組込みプロセッサー、ターゲット上のラピッド プロトタイピング ボード、および量産で使用するマイクロプロセッサーのためのコードを生成します。MATLAB Coder と Simulink Coder の機能が拡張され、生成するコードの関数、ファイル、およびデータを細かく調整できる、追加の設定オプションと高度な最適化を提供されています。Embedded Coder により、コードの効率性が向上すると同時に、量産で使用されているレガシー コード、データ タイプ、およびキャリブレーション パラメーターとの統合が容易になります。

また、Embedded Coder で生成したコードは、サードパーティの開発環境にエクスポートできるため、組込みシステムに実装する実行ファイルを自動的に作成できます。さらに生成したコードをプロセッサーで実行して、挙動性能を検証し、プロセッサーインザループ (PIL) やプロファイリングの手法を使用してリソースの使用状況に関する指標を収集することが可能です。

製品評価版の入手
または製品の購入

無料クイックスタートガイド

ガイドを見る