このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MATLAB (MEX ファイル) から呼び出せる C++ 関数の記述
MATLAB® から呼び出し可能な最新の C++ で実装される高性能な関数を作成する
C++ MEX API を使用して、C++ プログラムの効率性を備え、かつ MATLAB から外部関数および外部ライブラリにアクセスできる MATLAB 関数を作成します。C++ MEX API は以下の機能を提供します。
最新の C++ プログラミング機能およびオブジェクト指向の設計を使用。
MEX 関数から MATLAB 関数を呼び出し。
MATLAB から入力を取得しそこに結果を返すことで、MATLAB とシームレスに統合。
MATLAB データ型およびコピーオンライト セマンティクスをサポート。
スレッドセーフなマルチスレッド MEX 関数を作成。
アウトプロセスで C++ MEX 関数を実行。
メモ
MATLAB C++ API 内の関数は、C++ 用の MATLAB データ APIで定義される matlab::data::Array
クラスを使用します。MEX 関数を R2017b 以前の MATLAB で実行しなければならない場合、または C 言語での作業が望ましい場合は、mxArray
データ構造体で機能するC 行列 APIを代わりに使用してください。詳細については、MATLAB (MEX ファイル) から呼び出せる C 関数の記述を参照してください。
トピック
C++ MEX 関数の作成
- C++ MEX 関数
MEX ファイルは、C++ で作成された MATLAB 関数を実装します。 - C++ MEX ソース ファイルの作成
基本的な C++ MEX 関数を作成する方法。
MEX ファイルのセットアップおよびビルド
- C++ MEX プログラムのビルド
さまざまなプラットフォームで MEX アプリケーションをビルドする。 - ビルド環境のテスト
事前定義された C++ MEX ファイルを使用して、ビルド環境をテストします。 - C++ MEX API
C++11 の機能と C++ エンジン API を使用して、MEX 関数を実装します。
C++ MEX 関数の設計
- C++ MEX 関数の構造
関数呼び出し演算子()
をオーバーライドするクラスを実装して、ファンクター オブジェクトを作成します。 - MEX 関数における配列のコピーの回避
メモリの使用量を削減し、実行速度を改善するために、大きな配列のコピーを回避するテクニック。 - MEX 関数から外部リソースを管理
MexFunction
クラスをカスタマイズして、MEX 関数で使用するリソースの処理を改善します。 - 入力と出力の処理
入力のサイズと型をチェックし、MATLAB でエラー メッセージを表示。 - MATLAB コマンド ウィンドウでの出力の表示
MEX 関数は、MATLAB コマンド ウィンドウに出力を表示できます。 - mexCallMATLAB を使用した async 要求
matlab::engine::MATLABEngine::fevalAsync
のようなasync
要求で MATLAB に呼び戻す際の動作
MEX 関数における MATLAB データ型
- 型付き配列、cell 配列および構造体配列のデータ アクセス
cell 配列と構造体配列を使用すると、配列全体をコピーすることなく、配列の内容に書き込むことができます。 - MEX 関数のデータを渡すためのデータ型
MATLAB と MEX 関数の間で受け渡すデータの正しいデータ型を定義する。
MATLAB 関数の呼び出し
- MEX 関数からの MATLAB 関数の呼び出し
引数を MEX 関数との間で受け渡す MATLAB 関数を呼び出します。 - MEX 関数での例外のキャッチ
MEX 関数でスローされた例外のキャッチ。 - MEX 関数からの MATLAB ステートメントの実行
MATLAB ステートメントを実行して、呼び出し元のワークスペースに変数を作成する。
個別のスレッドとプロセス
- MEX 関数の個別のスレッドからの MATLAB の呼び出し
MEX 関数は、C++ エンジンの非同期 API を使用して、ユーザーが作成したスレッドから MATLAB を呼び出すことができます。 - C++ MEX 関数のアウトプロセスでの実行
MATLAB プロセスとは別のプロセスで C++ MEX 関数を実行する。
MATLAB 変数へのアクセス
- MEX からの MATLAB 変数の設定と取得
MATLAB ベースおよびグローバル ワークスペースに対して変数を配置するか取得する。 - MEX 関数の MATLAB オブジェクト
MATLAB オブジェクトを MEX 関数に渡す。 - MATLAB クラス メソッドに対する MEX 関数の使用
MEX 関数を使用して、MATLAB クラスにメソッドを実装することができます。