matlab::mex::ArgumentList
C++ MEX 関数からの入力および出力のコンテナー
説明
C++ MEX 関数は、matlab::mex::ArgumentList
オブジェクトに含まれる matlab::data::Array
オブジェクトとして入力および出力を渡します。MexFunction::operator()
は 2 つの引数を受け入れます。1 つは入力用、1 つは出力用で、matlab::mex::ArgumentList
として定義されています。
ArgumentList
はラッパーであり、入力と出力のデータを保持する基となる集合での反復を可能にします。
クラスの詳細
名前空間: | matlab::mex |
インクルード: | mex.hpp |
メンバー関数
operator[ ]
matlab::data::Array operator[](size_t idx)
ArgumentList
の要素への []
インデックスを有効にします。
| 入力配列の要素 (MEX 関数への入力引数) へのインデックス |
| 配列 |
配列、スカラーおよび文字ベクトルを入力とし、単一の出力をもつ MEX 関数を MATLAB® から呼び出します。
a = myMEXFunction(array, scalar, 'character vector')
最初の入力引数を TypedArray
に、2 番目の入力をスカラー const
double
に (いずれも MATLAB で double
型と仮定)、3 番目の入力を matlab::data::CharArray
として代入します。
void operator()(matlab::mex::ArgumentList outputs, matlab::mex::ArgumentList inputs) { matlab::data::TypedArray<double> inArray = inputs[0]; const double inScalar = inputs[1][0]; matlab::data::CharArray inChar = inputs[2]; result = ... outputs[0] = result; }
begin
iterator_type begin()
配列 ArgumentList
内の最初の要素を指す反復子を返します。
| 配列 |
入力引数からベクトルを作成します。
void operator()(matlab::mex::ArgumentList outputs, matlab::mex::ArgumentList inputs) { std::vector<matlab::data::TypedArray<double>> vectorDoubles(inputs.begin(), inputs.end()); ... }
end
iterator_type end()
配列 ArgumentList
内の最後の要素より後を指す反復子を返します。
| 配列 |
size
size_t size()
引数リスト内の要素数を返します。呼び出しサイトで指定されている入出力の数をチェックするために使用します。
| 配列 |
MEX 関数が 3 つの入力引数を指定して呼び出されるかどうかを特定します。
class MexFunction : public matlab::mex::Function { public: void operator()(matlab::mex::ArgumentList outputs, matlab::mex::ArgumentList inputs) { if (inputs.size() == 3) { // MEX function called with three input arguments ... } }
empty
bool empty()
引数リストが空かどうかを示す論理値を返します。
| 引数リストが空 ( |
入力引数を指定せずに MEX 関数が呼び出されるかどうかを特定します。
class MexFunction : public matlab::mex::Function { public: void operator()(matlab::mex::ArgumentList outputs, matlab::mex::ArgumentList inputs) { if (inputs.empty()) { // MEX function called with no input arguments ... } }
バージョン履歴
R2018a で導入