MATLAB Coder アプリを使用した MEX 関数の生成
MATLAB Coder アプリを使用した MEX 関数の生成のワークフロー
手順 | 作業 | 詳細 |
---|---|---|
1 | MATLAB® Coder™ プロジェクトをセットアップします。 | MATLAB Coder プロジェクトの設定 |
2 | ビルド構成パラメーターを指定します。[ビルド タイプ] を | プロジェクト設定の構成 |
3 | プロジェクトをビルドします。 | MATLAB Coder プロジェクトのビルド |
MATLAB Coder アプリは、MATLAB Online™ でサポートされていません。MATLAB Online で MEX 関数を生成するには、codegen
コマンドを使用します。
MATLAB Coder アプリを使用した MEX 関数の生成
この例では MATLAB Coder アプリを使用して MATLAB コードから MEX 関数を生成する方法について説明します。
エントリポイント関数の作成
ローカルの書き込み可能なフォルダーで、以下のコードを含む MATLAB ファイル mcadd.m
を作成します。
function y = mcadd(u,v) %#codegen y = u + v;
テスト ファイルの作成
同じローカルの書き込み可能なフォルダーで、サンプル入力と共に mcadd
を呼び出す MATLAB ファイル、mcadd_test.m
を作成します。サンプル入力は int16
型のスカラーです。
function y = mcadd_test
y = mcadd(int16(2), int16(3));
MATLAB Coder アプリを開く
MATLAB ツールストリップの [アプリ] タブの [コード生成] の下で、MATLAB Coder アプリ アイコンをクリックします。
[ソース ファイルの選択] ページが開きます。
ソース ファイルの指定
[ソース ファイルの選択] ページで、エントリポイント関数の名前
mcadd
を入力または選択します。既定の名前
mcadd.prj
でプロジェクトが作成されます。[次へ] をクリックして [入力の型を定義] ステップに進みます。アプリによって関数のコーディングの問題とコード生成の準備状態が解析されます。問題が検出された場合は、[コード生成の準備状態の確認] ページが開くので、ここで問題を確認して修正できます。この例では問題は検出されないので、[入力の型を定義] ページが表示されます。
入力の型の定義
C では静的なデータ型が使用されるため、MATLAB Coder は MATLAB ファイル内のすべての変数のプロパティをコンパイル時に判別しなければなりません。すべてのエントリポイント関数の入力のプロパティを指定しなければなりません。MATLAB Coder は、エントリポイント関数の入力のプロパティから MATLAB ファイル内のすべての変数のプロパティを推定できます。
MATLAB Coder が u
および v
の型を自動的に定義するために使用するテスト ファイル mcadd_test.m
を指定します。
テスト ファイル
mcadd_test.m
を入力または選択します。[入力の型の自動定義] をクリックします。
テスト ファイル
mcadd_test.m
はサンプル入力と共にエントリポイント関数mcadd
を呼び出します。MATLAB Coder は入力u
およびv
がint16(1x1)
であると推定します。[次へ] をクリックして [実行時の問題の確認] ステップに進みます。
実行時の問題の確認
[実行時の問題の確認] ステップでは、エントリポイント関数からの MEX ファイルの生成、MEX 関数の実行および問題の報告が行われます。このステップはオプションです。ただし、このステップを実行することをお勧めします。生成された C コードでの診断が難しいランタイム エラーを検出して修正することができます。
[実行時の問題の確認] ダイアログ ボックスを開くために [問題の確認] 矢印
をクリックします。
入力の型の定義に使用したテスト ファイル
mcadd_test
が、アプリによって [テスト ファイル] フィールドに入力されます。[問題の確認] をクリックします。
アプリにより MEX 関数が生成されます。
mcadd
の呼び出しを MEX 関数の呼び出しに置き換えてテスト ファイルが実行されます。MEX 関数の生成または実行中に問題が検出された場合は、警告およびエラー メッセージが表示されます。これらのメッセージをクリックして問題のあるコードに移動し、問題を修正します。この例ではアプリは問題を検出しません。[次へ] をクリックして [コード生成] ステップに進みます。
MEX 関数の生成
[生成] ダイアログ ボックスを開くために [生成] 矢印
をクリックします。
[生成] ダイアログ ボックスで [ビルド タイプ] を
[MEX]
に、[言語] を [C] に設定します。プロジェクトの他のビルド構成設定には既定値を使用します。[生成] をクリックします。
コード生成に成功したことが示されます。ページの左側に MATLAB のソース ファイルと生成された出力ファイルが表示されます。[変数] タブに MATLAB ソースの変数についての情報が表示されます。[ターゲットのビルド ログ] タブにコンパイラの警告とエラーを含むビルド ログが表示されます。
MATLAB Coder はプロジェクトをビルドし、既定の設定では、現在のフォルダーに MEX 関数
mcadd_mex
を作成します。また、MATLAB Coder は、codegen/mex/mcadd
というサブフォルダーに他のサポート ファイルを生成します。MATLAB Coder は、MATLAB 関数の名前を生成ファイルのルート名として使用します。MEX ファイル用にプラットフォーム固有の拡張子が作成されます。命名規則を参照してください。コード生成レポートを表示するには、[レポートの表示] をクリックします。
[次へ] をクリックして [ワークフローの完了] ページを開きます。
[ワークフローの完了] ページの確認
[ワークフローの完了] ページには、コード生成に成功したことが示されます。このページには、プロジェクトのサマリーと生成された出力へのリンクが表示されます。
プロジェクト設定の構成
[プロジェクトの設定] ダイアログ ボックスを開くには、次の手順に従います。
[生成] ダイアログ ボックスを開くために [生成] 矢印
をクリックします。
[詳細設定] をクリックします。
プロジェクトの設定を変更するには、変更する設定を含むタブをクリックします。たとえば、[整数オーバーフローで飽和] 設定を変更するには、[速度] タブをクリックします。
MEX 関数は、ライブラリおよび実行可能ファイルとは異なる一連の構成パラメーターを使用します。出力タイプを [MEX 関数]
から [ソース コード]
、[スタティック ライブラリ]
、[ダイナミック ライブラリ]
または [実行可能ファイル]
に変更する場合は、これらの設定を確認してください。
特定の構成パラメーターは、MEX コードとスタンドアロン コードの両方の生成に関連します。出力タイプが [MEX 関数]
のときに、このようなパラメーターのいずれかを有効にし、その同じ設定を C/C++ コードの生成に使用する場合、[C/C++ スタティック ライブラリ]
、[C/C++ ダイナミック ライブラリ]
および [C/C++ 実行ファイル]
に対して再度有効にしなければなりません。
参考
MATLAB Coder プロジェクトのビルド
指定した設定でプロジェクトをビルドするには、[コード生成] ページで [生成] をクリックします。MATLAB Coder アプリがプロジェクトをビルドするときに、ビルドの進行状況が表示されます。ビルドが完了すると、ビルドの詳細情報が [ターゲットのビルド ログ] タブに表示されます。
コード生成レポートが有効になっている場合またはビルド エラーが発生した場合には、レポートが生成されます。レポートには最新のビルドについての詳細情報と、レポートへのリンクが含まれています。
レポートを表示するには、[レポートの表示] リンクをクリックします。このレポートには MATLAB コードと生成された C/C++ ファイルへのリンクのほか、MATLAB コード内の変数についてコンパイル時の型情報が提示されます。ビルド エラーが発生した場合、レポートにはエラーと警告が表示されます。