exponenta event banner

matlab:: mex:: ArgumentList

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

Описание

Функции C++ MEX передают входы и выходы как 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::Array

Итератор, указывающий на первый элемент в 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