C++ MEX API
참고
C++ MEX API는 MATLAB에서 호출 가능한 C 함수 작성하기(MEX 파일)에 설명되어 있는 C MEX API와 호환되지 않습니다. 하나의 MEX 파일에서 이들 API를 섞어 사용할 수 없습니다.
C++ MEX API를 사용하여 이동 의미 체계(move semantics), 예외 처리, 메모리 관리 같은 C++11 기능을 이용하는 애플리케이션을 만들 수 있습니다.
matlab::mex::Function
—C++ MEX 함수의 기본 클래스.matlab::mex::ArgumentList
—C++ MEX 함수의 입력값과 출력값을 위한 컨테이너.matlab::engine::MATLABEngine
—Engine API를 정의하는 클래스.
matlab::mex::Function
클래스
모든 MEX 파일 구현은 matlab::mex::Function
에서 파생되는 클래스입니다.
matlab::mex::Function 함수 | 설명 |
---|---|
getEngine | MATLABEngine 객체에 대한 포인터를 가져옵니다. |
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 함수를 동기식으로 실행합니다. | 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 작업 공간에 존재하는 경우 | 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 항목을 참조하십시오.