MATLAB Coder は、デスクトップシステムから組み込みハードウェアまで、さまざまなハードウェア プラットフォームに対応した C および C++ コードを MATLAB コードから生成します。この製品は、ほとんどの MATLAB 言語と多くのツールボックスをサポートしています。生成コードは、ソースコード、スタティック ライブラリまたはダイナミック ライブラリとしてプロジェクトに統合できます。生成コードは可読性および移植性に優れています。これを既存の C および C++ コードやライブラリの主要部分と組み合わせることができます。また、MATLAB 環境で使用できるように、生成したコードを MEX 関数としてパッケージ化することもできます。
Embedded Coder と併用することで、MATLAB Coder にコードのカスタマイズ、ターゲット固有の最適化、コードのトレーサビリティ、ソフトウェアインザループ (SIL) とプロセッサインザループ (PIL) の検証機能が追加されます。
MATLAB プログラムをスタンドアロン アプリケーションとして展開するには、MATLAB Compiler を使用します。他のプログラミング言語へ統合するソフトウェア コンポーネントを生成するには、MATLAB Compiler SDK を使用します。
多種多様な実行環境
任意の C/C++ コンパイラを使用して生成コードをコンパイルし、デスクトップシステムからモバイルデバイス、組み込みハードウェアまでのあらゆるハードウェアで実行します。生成したコードはロイヤリティフリーのため、商用アプリケーションで顧客に無償で展開します。
ドキュメンテーション | 例
ツールボックスの関数の使用
MATLAB Coder アプリまたは等価なコマンドライン関数を使用して、MATLAB および Simulink 製品を用いた信号処理、コンピューター ビジョン、ディープラーニング、制御システム、その他のアプリケーション用のコードを生成します。
ドキュメンテーション | 例
組み込みハードウェアでのプロトタイピング
アルゴリズムを C/C++ に自動変換することでハードウェアにすばやく組み込みます。生成コードとアプリケーションを手動で統合することで、任意のデバイスをターゲットにします。Raspberry Pi 用の MATLAB サポートパッケージを使用して、Raspberry Pi 向けのプロセスを自動化します。
ドキュメンテーション | 例
MATLAB から C++ コードを展開
値クラス、ハンドルクラス、および System object を含む MATLAB コード内のクラスから C++ クラスを生成します。生成コードを C++ ライブラリまたは実行可能ファイルにコンパイルし、既存の C++ ソースコードに統合します。
ドキュメンテーション | 例
生成コードの最適化
マルチコア対応の OpenMP コードを生成し、LAPACK、BLAS、FFTW などの最適化済みライブラリを呼び出します。Embedded Coder を併用して、標準的な ANSI/ISO C/C++ コードよりも実行速度に優れた、プロセッサ固有の組み込みコードを生成します。
ドキュメンテーション | 例
ディープラーニング ネットワークと機械学習モデルの展開
ResNet-50、MobileNet-v2、サポート ベクター マシン (SVM) モデル、決定木モデルなどのさまざまな学習済みネットワークを、前処理および後処理ロジックとともに、Intel® および ARM® Cortex® ベースのチップを含む任意の CPU に展開します。
ドキュメンテーション | 例
ソフトウェアとの統合
MATLAB アルゴリズムを C/C++ ソースコードまたはライブラリとしてソフトウェア環境で再利用します。生成コードは自然な方法で C/C++ の型を使用するため、外部コードとの統合が容易です。生成コードから信頼できる C/C++ を自動的に呼び出します。
ドキュメンテーション | 例
生成コードでの MATLAB テストの再利用
対話型の MATLAB 環境で、既存の MATLAB テストを再利用して生成コードの動作を検証します。MATLAB ユニット テスト フレームワークを使用して、生成した C/C++ コードの検証に使用できる多種多様な回帰テストを迅速に開発します。
ドキュメンテーション | 例
アルゴリズムの高速化
生成したコードを MEX 関数として MATLAB コードから呼び出すと実行速度が向上します。生成した MEX 関数をプロファイリングし、ボトルネックを特定して最適化の対象を絞り込みます。
ドキュメンテーション | 例
製品リソース:
「MATLAB、MATLAB Coder、Fixed-Point Designer を組み合わせることで、小規模なチームでも、複雑なリアルタイム信号処理アルゴリズムを開発することができました。また、アルゴリズムを最適化して消費電力やメモリ要件を削減しただけでなく、組み込みコードの実装を加速し、医療機器の妥当性確認に必要な厳密なテストを実行することができました。」
Marina Brockway, VivaQuant