Main Content

C++ MEX API

참고

C++ MEX API는 MATLAB에서 호출 가능한 C 함수 작성하기(MEX 파일)에 설명되어 있는 C MEX API와 호환되지 않습니다. 하나의 MEX 파일에서 이들 API를 섞어 사용할 수 없습니다.

C++ MEX API를 사용하여 이동 의미 체계(move semantics), 예외 처리, 메모리 관리 같은 C++11 기능을 이용하는 애플리케이션을 만들 수 있습니다.

matlab::mex::Function 클래스

모든 MEX 파일 구현은 matlab::mex::Function에서 파생되는 클래스입니다.

matlab::mex::Function 함수

설명

getEngineMATLABEngine 객체에 대한 포인터를 가져옵니다.
mexLock메모리에서 MEX 파일 지우기를 방지합니다.
mexUnlock메모리에서 MEX 파일 지우기를 허용합니다.
getFunctionName현재 MEX 함수의 이름을 가져옵니다.

matlab::mex::ArgumentList 클래스

mex::Function 클래스의 operator()를 사용하여 전달되는 MEX 함수 인수는 matlab::mex::ArgumentList 컨테이너입니다. ArgumentList는 배열의 기본 컬렉션에 대한 전체 범위입니다.

matlab::mex::ArgumentList 메서드

설명

operator[ ]ArgumentList의 요소에 대한 [] 인덱싱을 활성화합니다.
begin이터레이터를 시작합니다.
end이터레이터를 종료합니다.
size인수 목록 내 요소 개수를 반환합니다. 호출하는 위치에서 지정된 입력값과 출력값의 개수를 확인하려면 이 메서드를 사용하십시오.
empty인수 목록이 비어 있는지 나타내는 논리값을 반환합니다(size() == 0).

C++ Engine API

matlab::engine::MATLABEngine 클래스를 사용하여 MATLAB® 함수, 변수 및 객체에 액세스합니다. 이 클래스에서 메서드를 호출하려면, getEngine을 사용하여 이 예제의 matlabPtr 같은 공유 포인터를 생성합니다.

std::shared_ptr<matlab::engine::MATLABEngine> matlabPtr = getEngine();

matlabPtr을 사용하여 엔진 메서드를 호출합니다. 예를 들어, 다음과 같이 입력합니다.

matlabPtr->feval(...);

mex::Function 클래스와 동일한 스레드에서만 엔진 메서드를 호출합니다.

matlab::engine::MATLABEngine 메서드

설명

예제

feval

입력 인수와 함께 MATLAB 함수를 동기식으로 실행합니다. feval을 사용하여 C++에서 MATLAB으로 인수를 전달하고 결과를 MATLAB에서 C++로 반환합니다.

Call MATLAB Functions from MEX Functions
fevalAsync

입력 인수 및 반환되는 값과 함께 MATLAB 함수를 비동기식으로 실행합니다.

자세한 내용은 Making async Requests Using mexCallMATLAB 항목을 참조하십시오.

eval

MATLAB 명령문을 동기식으로 문자열로 실행합니다.

Execute MATLAB Statements from MEX Function
evalAsync

MATLAB 명령문을 비동기식으로 문자열로 실행합니다.

자세한 내용은 Making async Requests Using mexCallMATLAB 항목을 참조하십시오.

getVariable

MATLAB 기본 작업 공간 또는 전역 작업 공간에서 변수를 가져옵니다.

Set and Get MATLAB Variables from MEX
getVariableAsync

MATLAB 기본 작업 공간 또는 전역 작업 공간에서 변수를 비동기식으로 가져옵니다.

 
setVariable

MATLAB 기본 작업 공간 또는 전역 작업 공간에 변수를 넣습니다. 같은 이름을 가진 변수가 MATLAB 작업 공간에 존재하는 경우 setVariable이 그 변수를 덮어씁니다.

Set and Get MATLAB Variables from MEX
setVariableAsync

MATLAB 기본 작업 공간 또는 전역 작업 공간에 변수를 비동기식으로 넣습니다.

 
getProperty

객체 속성의 값을 가져옵니다.

MATLAB Objects in MEX Functions
getPropertyAsync

객체 속성의 값을 비동기식으로 가져옵니다.

 
setProperty

객체 속성의 값을 설정합니다.

MATLAB Objects in MEX Functions
setPropertyAsync

객체 속성의 값을 비동기식으로 설정합니다.

 

예외에 대한 자세한 내용은 C++용 MATLAB Engine API 예외 클래스 항목을 참조하십시오. 예제는 Catch Exceptions in MEX Function 항목을 참조하십시오.

관련 항목