Main Content

matlab::mex::ArgumentList

C++ MEX 함수의 입력값과 출력값을 위한 컨테이너

설명

C++ MEX 함수는 matlab::mex::ArgumentList 객체에 포함된 matlab::data::Array 객체로 입력값과 출력값을 전달합니다. MexFunction::operator()는 입력값과 출력값에 각각 하나씩, matlab::mex::ArgumentList로 정의된 인수 두 개를 받습니다.

ArgumentList는 래퍼로, 이를 통해 입력 데이터와 출력 데이터가 담겨 있는 기본 컬렉션에 대한 반복이 가능합니다.

클래스 세부 정보

네임스페이스:

matlab::mex

포함:

mex.hpp

멤버 함수

operator[ ]

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

ArgumentList의 요소에 대한 [] 인덱싱을 활성화합니다.

파라미터

size_t idx

MEX 함수에 대한 입력 인수인 입력 배열의 요소에 대한 인덱스
반환되는 값

matlab::data::Array

ArgumentList 배열의 첫 번째 요소를 가리키는 이터레이터

예제

입력값으로 배열, 스칼라 및 문자형 벡터를 사용하고 단일 출력값을 사용하여 MATLAB®에서 MEX 함수를 호출합니다.

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

첫 번째 입력 인수를 TypedArray에 할당하고, 두 번째 입력 인수를 스칼라 const double에 할당하며(둘 다 MATLAB에서 double형이라고 가정함), 세 번째 입력 인수를 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 배열의 첫 번째 요소를 가리키는 이터레이터를 반환합니다.

반환되는 값

iterator_type

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 배열의 마지막 요소를 가리키는 이터레이터를 반환합니다.

반환되는 값

iterator_type

ArgumentList 배열의 마지막 요소를 가리키는 이터레이터

size

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

empty

bool empty()

인수 목록이 비어 있는지 나타내는 논리값을 반환합니다.

반환되는 값

bool

인수 목록이 비어 있는 경우(size() == 0) 논리값 true를 반환

예제

입력 인수 없이 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에 개발됨