MATLAB에서 호출 가능한 C++ 함수 작성하기(MEX 파일)
MATLAB®에서 호출 가능하며 최신 C++에서 구현되는 고성능 함수 생성
C++ MEX API를 사용하여 MATLAB 함수를 생성함으로써 C++ 프로그램의 효율성을 제공하고 MATLAB에서 외부 함수와 라이브러리에 액세스할 수 있습니다. C++ MEX API는 다음과 같은 기능을 제공합니다.
최신 C++ 프로그래밍 기능과 객체 지향 설계를 사용합니다.
MEX 함수에서 MATLAB 함수를 호출합니다.
MATLAB에 매끄럽게 통합되어 MATLAB에서 입력값을 가져오고 결과를 반환합니다.
MATLAB 데이터형과 쓰기 시 복사(copy-on-write) 의미 체계를 지원합니다.
스레드로부터 안전한 멀티스레드 MEX 함수를 작성합니다.
C++ MEX 함수를 out-of-process로 실행합니다.
참고
MATLAB C++ API의 함수들은 C++용 MATLAB Data API에 정의된 matlab::data::Array
클래스를 사용합니다. MEX 함수가 MATLAB R2017b 이하 버전에서 실행되어야 하거나 사용자가 C 언어로 작업하는 것을 선호하는 경우 mxArray
데이터 구조와 호환되는 C Matrix API를 대신 사용하십시오. 자세한 내용은 MATLAB에서 호출 가능한 C 함수 작성하기(MEX 파일) 항목을 참조하십시오.
도움말 항목
C++ MEX 함수 만들기
- C++ MEX 함수
MEX 파일은 C++로 작성된 MATLAB 함수를 구현합니다. - C++ MEX 소스 파일 만들기
기본 C++ MEX 함수를 만드는 방법.
MEX 파일 설정 및 빌드하기
- C++ MEX 프로그램 빌드하기
다양한 플랫폼에 MEX 애플리케이션을 빌드합니다. - Test Your Build Environment
Test your build environment with a predefined C++ MEX file. - C++ MEX API
C++11 기능과 C++ Engine API를 사용하여 MEX 함수를 구현합니다.
C++ MEX 함수 설계
- C++ MEX 함수의 구조
함수 연산자(Functor) 객체를 생성하기 위해 함수 호출 연산자()
를 재정의하는 클래스를 구현합니다. - Avoid Copies of Arrays in MEX Functions
Techniques to avoid making copies of large arrays to reduce memory usage and improve execution speed. - Manage External Resources from MEX Functions
Customize theMexFunction
class to better handle the resources used by your MEX function. - Handle Inputs and Outputs
Check the size and type of inputs and display error messages in MATLAB. - MATLAB 명령 창에 출력값 표시하기
MEX 함수는 MATLAB 명령 창에 출력값을 표시할 수 있습니다. - Make async Requests Using mexCallMATLAB
Behavior when calling back into MATLAB with anasync
request likematlab::engine::MATLABEngine::fevalAsync
. - Access ArgumentList and MATLAB Engine in User C++ Files
How to compilematlab::mex::ArgumentList
outside of MATLAB and link a shared library that uses MATLAB Engine API to a C++ MEX.
MEX 함수의 MATLAB 데이터형
- Data Access in Typed, Cell, and Structure Arrays
Cell and structure arrays let you write to array contents without copying entire array. - Data Types for Passing MEX Function Data
Define the correct data types to pass data between MATLAB and MEX functions.
MATLAB 함수 호출하기
- Call MATLAB Functions from MEX Functions
Call MATLAB functions, passing arguments from and returning arguments to a MEX function. - Catch Exceptions in MEX Function
Catch exceptions thrown in a MEX function. - Execute MATLAB Statements from MEX Function
Execute MATLAB statements to create variables in the caller's workspace.
별도의 스레드 및 프로세스
- Call MATLAB from Separate Threads in MEX Function
MEX functions can call MATLAB from user-created threads using the C++ Engine asynchronous API. - Out-of-Process Execution of C++ MEX Functions
Execute C++ MEX functions in processes that are separate from the MATLAB process.
MATLAB 변수에 액세스하기
- Set and Get MATLAB Variables from MEX
Put variables into or get variables from the MATLAB base and global workspaces. - MATLAB Objects in MEX Functions
Pass MATLAB objects to MEX functions. - Use MEX Functions for MATLAB Class Methods
You can use MEX functions to implement methods for MATLAB classes.