C MEX 파일 응용 프로그램

mxArray를 사용하여 MATLAB® R2017b 이하 버전에서 작동하는 C 프로그램 작성

직접 작성한 C 또는 C++ 프로그램을 내장 함수인 것처럼 MATLAB 명령줄에서 호출할 수 있습니다. 이러한 프로그램을 MEX 함수라고 하며, 함수의 이름이 MEX 파일의 이름입니다. 일부 응용 프로그램에는 MEX 함수가 적합하지 않습니다. MATLAB은 컴파일된 언어에서 시간이 많이 소요되는 로우 레벨의 프로그래밍 작업을 줄여주는 생산성 높은 환경입니다. 일반적으로는 MATLAB에서 프로그래밍을 수행하십시오. 응용 프로그램에 필요한 경우가 아니면 MEX 함수를 사용하지 마십시오.

MEX 함수를 생성하려면 MATLAB API를 사용하여 프로그램을 작성하십시오. 이러한 라이브러리에 있는 함수를 사용하면 MEX 함수와 작업 공간 간에 데이터를 원활하게 전송할 수 있습니다. MATLAB API를 선택하려면 다음을 고려하십시오.

  • MathWorks는 MATLAB Data API에 정의된 대로 최신 C++ 기능을 사용하여 MEX 함수를 만들 것을 권장합니다. 자세한 내용은 C++ MEX 응용 프로그램 항목을 참조하십시오.

  • MEX 함수가 MATLAB R2017b 이하 버전에서 실행되어야 하거나 사용자가 C 언어로 작업하는 것을 선호하는 경우 C Matrix API 및 C MEX API의 함수를 사용하십시오. 이러한 API는 MATLAB mxArray 데이터 구조를 사용합니다. 이 페이지에 나와 있는 함수와 항목은 mxArray를 기반으로 합니다.

참고

C Matrix API나 MATLAB Data API 중 하나에서 함수를 선택하십시오. 이러한 API의 함수는 혼합하여 사용할 수 없습니다.

mex 함수를 사용하여 소스 파일을 실행 가능한 프로그램으로 빌드하십시오. MEX 파일을 다른 MATLAB 사용자와 공유할 수도 있습니다.

S-Function을 작성하는 방법에 대한 자세한 내용은 Simulink® 문서를 참조하십시오.

다른 사람이 만든 MEX 함수를 호출하려면 MEX 파일 함수 항목을 참조하십시오.

C/C++ 프로그램이 있고 이 프로그램에서 MATLAB 함수를 호출하려면 Engine API 중 하나를 사용하십시오.

C/C++ 프로그램에서 MATLAB 데이터를 읽고 쓰려면 MAT 파일 데이터를 읽기 위한 MATLAB C API 항목을 참조해 사용하십시오.

함수

mexMEX 함수 또는 엔진 응용 프로그램 빌드
dbmexUNIX 플랫폼에서 MEX 파일 디버그 사용

C MEX API

mexFunctionEntry point to C/C++ MEX function built with C Matrix API
mexFunctionNameName of current MEX function
mexAtExitRegister function to call when MEX function clears or MATLAB terminates
mexCallMATLABCall MATLAB function, user-defined function, or MEX function
mexCallMATLABWithTrapCall MATLAB function, user-defined function, or MEX-file and capture error information
mexEvalStringExecute MATLAB command in caller workspace
mexEvalStringWithTrapExecute MATLAB command in caller workspace and capture error information
mexGetVariableCopy of variable from specified workspace
mexGetVariablePtrRead-only pointer to variable from another workspace
mexPutVariableArray from MEX function into specified workspace
mexGetValue of specified graphics property
mexSetSet value of specified graphics property
mexPrintfANSI C PRINTF-style output routine
mexErrMsgIdAndTxtDisplay error message with identifier and return to MATLAB prompt
mexWarnMsgIdAndTxtWarning message with identifier
mexIsLockedDetermine if MEX-file is locked
mexLockPrevent clearing MEX-file from memory
mexUnlockAllow clearing MEX-file from memory
mexMakeArrayPersistentMake array persist after MEX file completes
mexMakeMemoryPersistentMake memory allocated by MATLAB software persist after MEX-function completes

도움말 항목

C MEX 함수 작성하기

C 소스 MEX 파일 만들기

이 예제에서는 C Matrix API를 사용하여 빌드한 arrayProduct C MEX 함수를 만드는 방법을 보여줍니다.

MEX 함수의 소스 코드 예제 표

MEX 함수 예제의 소스 코드에 대한 링크.

MATLAB 데이터

MEX 파일에서 mxArray 사용.

Memory Management Issues

Rules for managing mxArray memory.

C Matrix API를 사용하여 C++ MEX 함수 생성하기

C Matrix API를 사용하여 빌드한 MEX 함수를 만들 때 고려해야 할 C++ 언어 문제.

Error Handling in C MEX Files

Print error information using the mexErrMsgIdAndTxt function.

Handling Large File I/O in MEX Files

How to use 64-bit file I/O in your MEX file.

Testing for Most-Derived Class

How to exclude subclasses of built-in types from MEX file input arguments.

C Matrix API 버전

Upgrade MEX Files to Use Interleaved Complex API

MATLAB Version 9.4 (R2018a) supports an interleaved representation of complex numbers.

64비트 API를 사용하도록 MEX 파일 업그레이드하기

MATLAB 버전 9.2(R2017a)에서는 기본적으로 64비트 API를 사용하여 MEX 파일을 빌드합니다.

Upgrade MEX Files to Use Graphics Objects

MATLAB Version 8.4 (R2014b) changes the data type of handles to graphics objects from double to object.

MEX 파일 공유하기

Document Build Information in the MEX File

This example shows how to document the xtimesy MEX file built on a Windows® platform using a Microsoft® Visual C++® compiler.

문제 해결

빌드 오류

Getting Help When MEX Fails

To help diagnose compiler set up and build errors, call the mex function with verbose option -v.

Compiling MEX File Fails

What to do when compiling a MEX file fails.

Troubleshooting MEX API Incompatibilities

More information for warnings and error messages.

MinGW-w64로 C/C++ MEX 파일을 컴파일할 때의 문제 해결과 제한 사항

MinGW-w64 컴파일러로 빌드한 MEX 파일 문제 해결.

Symbol mexFunction Unresolved or Not Defined

Every MEX file needs a mexFunction.

런타임 오류

유효하지 않은 MEX 파일 오류

유효하지 않은 MEX 파일 오류 발생 시 수행할 작업.

MEX 버전 호환성

최상의 결과를 얻으려면 사용 중인 MATLAB 버전으로 빌드한 MEX 파일을 실행하십시오.

MEX Platform Compatibility

If you get a binary MEX file from another source, be sure that the file was compiled for the same platform on which you want to run it.

MEX API Is Not Thread Safe

Do not call a single session of MATLAB on separate threads from a MEX file.

MEX File Segmentation Fault

What to do when a MEX file causes a segmentation violation or assertion.

MEX File Generates Incorrect Results

What to do when your MEX generates wrong answers.

디버그

Debug on Mac Platforms

This example shows how to debug a MEX file on Mac Platforms.

Debug on Linux Platforms

This example shows how to debug a MEX file on Linux® Platforms.