mATLAB:: mEX:: ArgumentList

Контейнер для вводов и выводов от MEX-функций C++

Описание

MEX-функции C++ передают вводы и выводы как объекты matlab::data::Array, содержавшиеся в объектах matlab::mex::ArgumentList. MexFunction::operator(), принимает два аргумента. Один для входных параметров и один для выходных параметров, заданных как matlab::mex::ArgumentList.

ArgumentList является оберткой для начальных и конечных итераторов для базовых наборов, содержащих данные ввода и вывода.

Информация о классе

Пространство имен:

mATLAB:: mEX

Включение:

mEX. hpp

Функции членства

оператор

matlab::data::Array operator[](size_t idx)

Включает индексацию [] в элементы ArgumentList.

Параметры

size_t idx

Индексируйте в элементы входного массива, которые являются входными параметрами к MEX-функции

Возвращается

matlab::data:: Массив

Итератор, указывающий на первый элемент в массиве ArgumentList

Примеры

Вызовите MEX-функцию от MATLAB® с массивом, скаляром и вектором символа как входные параметры и единственный вывод:

a = myMEXFunction(array, scalar, 'character vector')

Присвойте первый входной параметр TypedArray, второй входной параметр к скалярному const double (примите, что оба имеют тип double в MATLAB), и третий входной параметр как 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;
}

начало

iterator_type begin()

Возвращает итератор, указывающий на первый элемент в массиве ArgumentList.

Возвращается

iterator_type

Итератор, указывающий на первый элемент в массиве ArgumentList

Примеры

Создайте вектор из входных параметров.

void operator()(matlab::mex::ArgumentList outputs, matlab::mex::ArgumentList inputs) {
    std::vector<matlab::data::TypedArray<double>> vectorDoubles(inputs.begin(), inputs.end());
    ...
}

конец

iterator_type end()

Возвращает обращение итератора мимо последнего элемента в массиве ArgumentList.

Возвращается

iterator_type

Обращение итератора мимо последнего элемента в массиве ArgumentList

размер

size_t numArgs size()

Возвращает число элементов в списке аргументов. Используйте, чтобы проверить количество вводов и выводов, заданных на сайте вызова.

Возвращается

size_t

Размер массива ArgumentList

Примеры

Определите, вызвана ли MEX-функция тремя входными параметрами.

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
        ...
    }
}

пустой

bool empty()

Возвращает логическое значение, указывающее, пуст ли список аргументов.

Возвращается

bool

Возвращает логический true, если список аргументов пуст (size() == 0)

Примеры

Определите, называется ли 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

Была ли эта тема полезной?