ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

C++ MEX アプリケーション

最新の C++ で実装される高性能な MATLAB® 関数の作成

C++ MEX を使用して、C++ プログラムの効率性を備え、MATLAB から外部関数および外部ライブラリにアクセスできる MATLAB 関数を作成します。

C++ MEX API は以下の機能を提供します。

  • 最新の C++ プログラミング機能およびオブジェクト指向の設計を使用。

  • MATLAB から入力を取得。

  • 結果を MATLAB に返す。

  • MATLAB データ型およびコピーオンライト セマンティクスをサポート。

  • MEX 関数からの MATLAB 関数の呼び出し。

  • MATLAB とのシームレスな統合。

  • スレッドセーフなマルチスレッド MEX 関数の作成。

  • アウトプロセスでの C++ MEX 関数の実行。

メモ

C++ MEX API は最新の C++ 機能をサポートしていますが、C MEX APIまたはC 行列 APIとの互換性はありません。MEX ファイル内では、C++ MEX API とこれらの API を組み合わせて使用できません。

C++ クラス

matlab::mex::FunctionC++ MEX 関数の基底クラス
matlab::mex::ArgumentListC++ MEX 関数からの入力および出力のコンテナー

アウトプロセスでの実行

mexhostC++ MEX 関数のホスト プロセスの作成
fevalMEX ホスト プロセスでの C++MEX 関数の評価
matlab.mex.MexHostC++ MEX 関数のプロセス ホスト外の実行

トピック

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 コマンド ウィンドウに出力を表示できます。

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 関数に渡す。