Main Content

MEX 함수의 소스 코드 예제 표

다음 표에는 예제 MEX 함수를 만들기 위한 소스 코드 파일 목록이 나와 있습니다. 이러한 예제를 출발점으로 삼아 자신만의 고유한 MEX 함수를 만들어 보십시오. 표에는 다음 정보가 포함되어 있습니다.

  • 예제 이름 - MATLAB® 편집기에서 손쉽게 소스 파일을 열 수 있는 링크입니다. 사용자는 원하는 코드 개발 편집기를 사용하여 소스 MEX 파일을 만들 수 있습니다.

  • 예제 하위 폴더 - 예제가 포함된 matlabroot/extern/examples의 하위 폴더입니다. 파일을 쓰기 가능한 폴더로 복사할 때 이 하위 폴더 이름을 사용하십시오.

  • 설명 - 예제에 대해 설명합니다.

  • 추가 정보 - 예제를 설명하거나 사용하는 항목 또는 예제에 사용된 API 함수에 대한 링크입니다.

시작하기

mex 명령을 사용하여 예제를 빌드합니다. MATLAB에서 지원하는 컴파일러가 설치되어 있는지 확인하십시오. 소스 코드 언어 lang에 대한 컴파일러를 확인하려면 다음을 입력하십시오.

mex -setup lang

다음 명령 구문을 사용하여 파일을 사용자 시스템 경로의 쓰기 가능한 폴더로 복사합니다. 여기서 filename은 예제 이름이고 foldername은 하위 폴더 이름입니다.

copyfile(fullfile(matlabroot,'extern','examples','foldername','filename'),'.','f')

예를 들어, arrayProduct.c를 복사하려면 다음을 입력하십시오.

copyfile(fullfile(matlabroot,'extern','examples','mex','arrayProduct.c'),'.','f')

C, C++ 및 Fortran MEX 함수

MATLAB 또는 운영 체제 프롬프트에서 예제 MEX 함수를 빌드하려면 다음 명령 구문을 사용하십시오. 여기서 filename은 예제 이름이고 release-option은 예제에서 사용하는 API를 지정합니다. MATLAB API에 대한 자세한 내용은 MEX 애플리케이션 선택하기 항목을 참조하십시오.

mex -v -release-option filename
예제 이름예제 하위 폴더설명추가 정보
arrayFillGetPr.c refbook

mxGetDoubles을 사용하여 mxArray를 채웁니다.

Fill mxArray in C MEX File
arrayFillSetData.c refbook

비double형 값으로 mxArray를 채웁니다.

Fill mxArray in C MEX File
arrayFillSetPr.c refbook

mxSetDoubles을 사용하여 mxArray를 채워 메모리를 동적으로 할당합니다.

Fill mxArray in C MEX File
arrayFillSetComplexPr.crefbook

mxSetComplexDoubles을 사용하여 mxArray를 채워 메모리를 동적으로 할당합니다.

Fill mxArray in C MEX File
arrayProduct.cmex

스칼라에 1xN 행렬을 곱합니다.

C 소스 MEX 파일 arrayProduct.c 만들기
arrayProduct.cppcpp_mex

arrayProduct.c와 같음. C++용 MATLAB Data API 사용.

C++ MEX 함수
arraySize.c mex

mxArray의 메모리 요구 사항을 보여줍니다.

Handling Large mxArrays in C MEX Files
complexAdd.Frefbook

두 개의 복소수 double형 배열을 추가합니다.

 
convec.c
convec.F
refbook

복소수 데이터를 전달합니다.

C MEX 파일의 복소수 데이터 처리하기
dblmat.F
compute.F
refbookFortran의 %VAL을 사용합니다. 
doubleelement.crefbook부호 없는 16비트 정수를 사용합니다.Handle 8-, 16-, 32-, and 64-Bit Data in C MEX File
explore.cmex입력 변수의 데이터형을 식별합니다.mxArrays 사용하기
findnz.c refbookN차원 배열을 사용합니다.Manipulate Multidimensional Numerical Arrays in C MEX Files
fulltosparseIC.c
fulltosparse.c
fulltosparse.F, loadsparse.F
refbook희소 행렬을 만듭니다.Handle Sparse Arrays in C MEX File
matsq.FrefbookFortran에서 행렬을 전달합니다. 
matsqint8.FrefbookFortran에서 비double형 행렬을 전달합니다. 
mexatexit.c
mexatexit.cpp
mex데이터 파일을 닫기 위한 종료 함수를 등록합니다.C++ 파일 처리 예제
mexcallmatlab.cmex

MATLAB 내장 disp 함수를 호출합니다.

 
mexcallmatlabwithtrap.c mex오류 정보를 캡처하는 방법입니다. 
mexcpp.cppmexC Matrix API를 사용하여 빌드한 MEX 파일에서 일부 C++ 언어 기능을 사용하는 방법을 보여줍니다.C++ 클래스 예제
mexevalstring.c mexmexEvalString을 사용하여 MATLAB의 변수를 할당합니다.mexEvalString
mexfunction.cmexmexFunction을 사용하는 방법입니다.mexFunction
mxgetproperty.cmexmxGetPropertymxSetProperty를 사용하여 그래픽 객체의 Color 속성을 변경합니다.mxGetPropertymxSetProperty
mexgetarray.cmexmexGetVariablemexPutVariable을 사용하여 MEX 파일과 MATLAB 전역 작업 공간에서 카운터를 추적합니다.mexGetVariablemexPutVariable
mexgetarray.cpp mexgetarray.c와 같음. C++용 MATLAB Data APIgetVariablesetVariable 사용.Set and Get MATLAB Variables from MEX
mexlock.c
mexlockf.F
mexMEX 파일을 잠그고 잠금 해제하는 방법입니다.mexLock
mxcalcsinglesubscript.cmxMATLAB의 1부터 시작하는 행렬 인덱싱과 C의 0부터 시작하는 인덱싱을 비교하여 보여줍니다.mxCalcSingleSubscript
mxcreatecellmatrix.c
mxcreatecellmatrixf.F
mx2차원 셀형 배열을 만듭니다.Create 2-D Cell Array in C MEX File
mxcreatecharmatrixfromstr.cmx2차원 문자형 배열을 만듭니다.mxCreateCharMatrixFromStrings
mxcreatestructarray.cmxC 구조체에서 MATLAB 구조체를 생성합니다.mxCreateStructArray
mxcreateuninitnumericmatrix.cmx

초기화되지 않은 mxArray를 만들고 함수 내 데이터로 채운 다음 반환합니다.

mxCreateUninitNumericMatrix
mxgeteps.c
mxgetepsf.F
mx

MATLAB eps 값을 읽어 들입니다.

mxGetEps
mxgetinf.cmx

inf 값을 읽어 들입니다.

mxGetInf
mxgetnzmax.c mx희소 행렬에 있는 0이 아닌 요소의 개수와 희소 행렬에 저장 가능한 0이 아닌 요소의 최대 개수를 표시합니다.mxGetNzmax
mxisclass.cmx배열이 지정된 클래스의 멤버인지 여부를 확인합니다.mxIsClass
mxisfinite.cmxNaN 값과 무한대 값이 있는지 확인합니다.mxIsFinite
mxislogical.cmx

작업 공간 변수가 논리형 변수인지 전역 변수인지 확인합니다.

mxIsLogical
mxisscalar.cmx입력 변수가 스칼라인지 여부를 확인합니다.mxIsScalar
mxmalloc.cmx

MATLAB char 배열을 C 스타일 문자열로 복사하기 위해 메모리를 할당합니다.

mxMalloc
mxsetdimensions.c
mxsetdimensionsf.F
mx배열의 형태를 변경합니다.mxSetDimensions
mxsetnzmax.cmx희소 행렬을 위한 메모리를 다시 할당하고 pr, pi, irnzmax의 값을 재설정합니다.mxSetNzmax
passstr.F refbookC의 문자형 행렬을 Fortran에서 MATLAB으로 전달합니다. 
phonebook.crefbook구조체와 셀형 배열을 조작합니다.C MEX 파일에 구조체와 셀형 배열 전달하기
phonebook.cppcpp_mexphonebook.c와 같음. C++용 MATLAB Data API 사용.C++ MEX 함수
revord.c
revord.F
refbook

MATLAB char 배열을 C 스타일 문자열로 복사하거나 C 스타일 문자열에서 복사합니다.

Pass Strings in C MEX File
sincall.c
sincall.F, fill.F
refbook

mxArray를 만든 다음 MATLAB의 sin 함수와 plot 함수로 전달합니다.

 
timestwo.c
timestwo.F
refbookMEX 파일의 일반적인 워크플로를 보여줍니다.Pass Scalar Values in C MEX File
xtimesy.c
xtimesy.F
refbook여러 개의 파라미터를 전달합니다.
yprime.c
yprimef.F, yprimefg.F
mex간단한 삼체 궤도 문제를 풉니다. 
yprime.cppcpp_mexyprime.c와 같음. C++용 MATLAB Data API 사용.C++ MEX 함수

Fortran 서브루틴을 호출하는 MEX 함수

다음 표의 예제는 MEX 함수에서 LAPACK 함수나 BLAS 함수를 호출합니다. 이러한 예제는 Fortran 라이브러리 mwlapackmwblas 중 하나 또는 둘 모두에 연결됩니다. MEX 함수를 빌드하려면 추가 정보 열에 나와 있는 항목의 지침을 따르십시오.

예제 이름 예제 하위 폴더 설명 추가 정보
dotProductComplexIC.c
dotProductComplexIC.F
dotProductComplex.c
refbookC 또는 Fortran MEX 파일에서 호출된 함수에 대한 Fortran 복소수 반환 유형을 처리합니다.
dotProductComplexIC.cdotProductComplexIC.F는 실수부/허수부 결합형 복소수 API를 사용합니다. dotProductComplex.c는 실수부/허수부 분리형 복소수 API를 사용합니다.
Handle Fortran Complex Return Type — dotProductComplex
matrixDivide.crefbookLAPACK 함수를 호출합니다.입력값이 수정되지 않도록 보존하기
matrixDivideComplex.crefbook복소수와 함께 LAPACK 함수를 호출합니다.Pass Complex Variables — matrixDivideComplex
matrixMultiply.crefbookBLAS 함수를 호출합니다.C/C++ 프로그램에서 Fortran 함수에 인수 전달하기
utdu_slv.crefbook부정부호 대칭 행렬 분해에 LAPACK을 사용합니다.Symmetric Indefinite Factorization Using LAPACK — utdu_slv

참고 항목

관련 항목