Main Content

matlab::mex::Function

C++ MEX 関数の基底クラス

説明

C++ MEX 関数に実装する MexFunction クラスは、matlab.mex.Function クラスから継承しなければなりません。matlab.mex.Function クラスを使用すると、C++ エンジン API へのアクセスが可能になり、MexFunction クラスによってオーバーライドしなければならないバーチャル関数 operator() が定義されます。

クラスの詳細

名前空間:

matlab::mex

インクルード:

mexAdapter.hpp — このファイルは、MexFunction クラスの実装用に 1 回だけ含めます。

メンバー関数

operator()

virtual void operator()(ArgumentList outputs, ArgumentList inputs)

MexFunction クラス内でオーバーライドしなければならない関数呼び出し演算子。この演算子を使用すると、MexFunction クラスのインスタンスを関数のように呼び出すことができます。

パラメーター
matlab::mex::ArgumentList outputsMATLAB® に返される matlab::data::Array オブジェクトの集合
matlab::mex::ArgumentList inputsMATLAB から MEX 関数に渡される matlab::data::Array オブジェクトの集合
class MexFunction : public matlab::mex::Function {
public:
    void operator()(matlab::mex::ArgumentList outputs, matlab::mex::ArgumentList inputs) {
        ...
    }
}

getEngine

std::shared_ptr<matlab::engine::MATLABEngine> getEngine()

MATLABEngine オブジェクトを指すポインターを返します。これにより、C++ エンジン API へのアクセスが可能になります。

戻り値

std::shared_ptr<matlab::engine::MATLABEngine>

MATLABEngine オブジェクトへのポインター

MATLAB の関数 clear を呼び出します。

std::shared_ptr<MATLABEngine> matlabPtr = getEngine();
matlabPtr->eval(matlab::engine::convertUTF8StringToUTF16String("clear"));

mexLock

void mexLock()

MEX ファイルがメモリからクリアされないようにします。mexLockmexUnlock は、ユーザー スレッドから呼び出さないでください。

MEX ファイルをロックします。

mexLock();

mexUnlock

MEX ファイルのロックを解除して、メモリからクリアできるようにします。mexLockmexUnlock は、ユーザー スレッドから呼び出さないでください。

void mexLock()

MEX ファイルのロックを解除します。

mexUnlock();

getFunctionName

std::u16string getFunctionName() const

MEX 関数の名前を返します。これはソース ファイルの名前です。

現在実行中の MEX 関数のファイル名を取得します。

std::u16string fileName = getFunctionName();

バージョン履歴

R2018a で導入