MATLAB Coder

MATLAB コードからの C コードと C++ コードの生成

 

MATLAB Coder™ は、デスクトップ システムから組み込みハードウェアまで、さまざまなハードウェア プラットフォームに対応した C コードと C++ コードを MATLAB® コードから生成します。また、MATLAB 言語の大部分とさまざまなツールボックスをサポートしています。生成されたコードをソースコード、スタティック ライブラリまたはダイナミック ライブラリとしてプロジェクトに統合できます。生成コードは可読性および移植性が良好です。既存の C コードやライブラリと統合して、アルゴリズムの重要な部分で非常に高い効率を実現したり、信頼性の高いコードを再利用したりすることができます。また、検証または高速化のため MATLAB 環境で使用できるように、生成したコードを MEX 関数としてパッケージ化することも可能です。

Embedded Coder® は、量産向けコード生成のため、MATLAB Coder にコード カスタマイズ、ターゲット固有の最適化、コード トレーサビリティ、ソフトウェアインザループ (SIL) とプロセッサインザループ (PIL) の検証サポートを追加して拡張します。

ユーザー インターフェイスを含む完全なアプリケーションの配布には、MATLAB Compiler SDK™ を使用します。

詳細を見る:

多種多様な実行環境

可読性と移植性に優れた ANSI C ソース コードを生成します。コード配布は無償です。

アルゴリズムの配布が無償

任意の C コンパイラを使用して、生成したコードをコンパイルし、デスクトップ システムからモバイル デバイス、組み込みハードウェアまであらゆるハードウェアで実行できます。生成したコードはロイヤリティ フリーなので、商用アプリケーションで顧客に無料配布しすることができます。

行列乗算用に生成されたコード

dorsaVi 社の医療/スポーツ用モーション解析アルゴリズム

サポートされているツールボックスと関数

MATLAB 言語の幅広い機能を使用して MATLAB Coder で生成されるコードにより、設計エンジニアは大規模システムのコンポーネントとして使用するアルゴリズムを開発することができます。MATLAB および関連ツールボックスから 1900 以上の演算子と関数を利用できます。

コード生成のための MATLAB 言語とツールボックスのサポート

ハードウェアでのプロトタイピング

アルゴリズムを C に自動変換することでハードウェア開発期間を短縮します。

デスクトップおよびクラウド プラットフォームでのプロトタイピング

MATLAB Coder アプリまたは同等のコマンドライン関数を使用すると、簡単にコードを生成し、使用するハードウェア用にコンパイルできます。信号処理、コンピューター ビジョン、ディープラーニング、制御システムをはじめ、幅広いアプリケーションに対応します。

デスクトップおよびクラウド プラットフォームでアルゴリズムを簡単にプロトタイピング

組み込みおよびモバイル プラットフォームでのプロトタイピング

生成したコードとアプリケーションを手動で統合すれば、すべてのデバイスをターゲットにできます。Raspberry Pi 用の MATLAB サポート パッケージを使用すれば、Raspberry Pi™ のプロセスを自動化できます。

組み込みおよびモバイル プラットフォームでアルゴリズムを簡単にプロトタイピング

プロトタイピングから量産への移行

MATLAB Coder と Embedded Coder® を併用すると、標準的な ANSI/ISO C/C++ コードよりも実行速度に優れた、プロセッサ固有の機能を利用したコードも生成できます。

生成したスタンドアロン コードの実行時間のプロファイリング

ソフトウェアとの統合

ソフトウェア環境内で MATLAB アルゴリズムを C コードとして再利用します。

簡単に統合できるシンプルなインターフェイスでコードを生成

生成されるコードは自動的に C 型を使用するため、外部コードとの統合が容易です。生成したコードをソースコードやライブラリとして統合することができます。信頼できる C ライブラリやコンポーネントを MATLAB に統合すれば、より忠実度の高いテストを実施できるようになるだけでなく、生成したコードから自動的に呼び出すことも可能です。

MATLAB Coder と Embedded Coder を併用する対話型のトレーサビリティ レポート

生成されたコードのパフォーマンスの最適化

最適化を適用することで、実行速度、メモリ使用量、可読性、移植性のトレードオフを調整できます。ボトルネックの特定にはプロファイリング ツールを使用します。パフォーマンスをさらに高めるには、マルチコア対応の OpenMP コードを生成し、LAPACK、BLAS、FFTW などの最適化済みライブラリを呼び出します。

OpenMP を呼び出す生成コードの例

統合の前に生成したコードで MATLAB テストを再利用

対話型の MATLAB 環境で、既存の MATLAB テストを再利用して生成コードの動作を検証します。MATLAB ユニット テスト フレームワークを使用すると、生成した C コードの検証に使用できる多種多様な回帰テストを簡単に開発できます。

アプリケーションに統合する前に生成したコードの動作を検証

アルゴリズムの高速化

C コードを生成し、MATLAB 内で使用できるようにコンパイルします。

CPU でのアルゴリズムの高速化

生成したコードを MEX 関数として MATLAB コードから呼び出すと実行速度が向上しますが、実際のパフォーマンスは MATLAB コードの性質によって異なります。生成した MEX 関数をプロファイリングし、ボトルネックを特定して最適化の対象を絞り込むことができます。

パフォーマンスのボトルネックを特定するための MEX 関数のプロファイリング

GPU を使用したアルゴリズムの高速化

Parallel Computing Toolbox™ を使用すると、MATLAB でのアルゴリズムの実行を高速化できます。最新の NVIDIA® GPU での高速化や配布に対応した CUDA コードを生成するには GPU Coder™ を使用します。

GPU を使用したアルゴリズムの高速化

新機能

ディープラーニング

Arm および Intel プロセッサ用のYOLO v2 と MobileNet-v2 ネットワーク向けコードの生成

より多くの C++ 言語およびオブジェクト指向の機能を持つ C++ コードの生成

 

より多くの MATLAB データ型に対応したコードを生成

categorical、duration、および table

コード生成レポートオブジェクト

プログラムを利用してコードの洞察にアクセスしログを構築

MEX プロファイリング

MATLAB プロファイラーでの生成された MEX 関数の実行時間の確認 (19a の機能)

Optimization Toolbox コードの生成

fmincon を使用して非線形制約最適化のためのコードを生成

Statistics and Machine Learning Toolbox のコード生成

確率分布関数のためのコードを生成

MATLAB Online で MATLAB Coder の機能を使用

これらの機能および対応する関数の詳細については、リリース ノートを参照してください。

MATLAB から C コードを簡単に生成するには

MATLAB Coder の使用に関するヒントとベスト プラクティスをご紹介します。Delphi、Baker Hughes、iSonea、dorsaVi など、各社の生成コードの事例もご覧いただけます。

無料評価版を入手する

30 日間の無料評価版はこちら

今すぐダウンロード

あなたは学生ですか?

MATLAB および Simulink 学生向けソフトウェアの入手

詳細を見る