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 |
| C MEX 파일의 mxArray 채우기 |
arrayFillSetData.c | refbook | 비double형 값으로 | C MEX 파일의 mxArray 채우기 |
arrayFillSetPr.c | refbook |
| C MEX 파일의 mxArray 채우기 |
arrayFillSetComplexPr.c | refbook |
| C MEX 파일의 mxArray 채우기 |
arrayProduct.c | mex | 스칼라에 1xN 행렬을 곱합니다. | C 소스 MEX 파일 arrayProduct.c 만들기 |
arrayProduct.cpp | cpp_mex |
| C++ MEX 함수 |
arraySize.c | mex | 큰 | Handling Large mxArrays in C MEX Files |
complexAdd.F | refbook | 두 개의 복소수 double형 배열을 추가합니다. | |
convec.cconvec.F | refbook | 복소수 데이터를 전달합니다. | C MEX 파일의 복소수 데이터 처리하기 |
dblmat.Fcompute.F | refbook | Fortran의 %VAL을 사용합니다. | |
doubleelement.c | refbook | 부호 없는 16비트 정수를 사용합니다. | Handle 8-, 16-, 32-, and 64-Bit Data in C MEX File |
explore.c | mex | 입력 변수의 데이터형을 식별합니다. | mxArrays 사용하기 |
findnz.c | refbook | N차원 배열을 사용합니다. | Manipulate Multidimensional Numerical Arrays in C MEX Files |
fulltosparseIC.cfulltosparse.cfulltosparse.F, loadsparse.F | refbook | 희소 행렬을 만듭니다. | Handle Sparse Arrays in C MEX File |
matsq.F | refbook | Fortran에서 행렬을 전달합니다. | |
matsqint8.F | refbook | Fortran에서 비double형 행렬을 전달합니다. | |
mexatexit.cmexatexit.cpp | mex | 데이터 파일을 닫기 위한 종료 함수를 등록합니다. | C++ 파일 처리 예제 |
mexcallmatlab.c | mex | MATLAB 내장 | |
mexcallmatlabwithtrap.c | mex | 오류 정보를 캡처하는 방법입니다. | |
mexcpp.cpp | mex | C Matrix API를 사용하여 빌드한 MEX 파일에서 일부 C++ 언어 기능을 사용하는 방법을 보여줍니다. | C++ 클래스 예제 |
mexevalstring.c | mex | mexEvalString을 사용하여 MATLAB의 변수를 할당합니다. | mexEvalString |
mexfunction.c | mex | mexFunction을 사용하는 방법입니다. | mexFunction |
mxgetproperty.c | mex | mxGetProperty와 mxSetProperty를 사용하여 그래픽 객체의 Color 속성을 변경합니다. | mxGetProperty 및 mxSetProperty |
mexgetarray.c | mex | mexGetVariable과 mexPutVariable을 사용하여 MEX 파일과 MATLAB 전역 작업 공간에서 카운터를 추적합니다. | mexGetVariable 및 mexPutVariable |
mexgetarray.cpp | mexgetarray.c와 같음. C++용 MATLAB Data API의 getVariable과 setVariable 사용. | Set and Get MATLAB Variables from MEX | |
mexlock.cmexlockf.F | mex | MEX 파일을 잠그고 잠금 해제하는 방법입니다. | mexLock |
mxcalcsinglesubscript.c | mx | MATLAB의 1부터 시작하는 행렬 인덱싱과 C의 0부터 시작하는 인덱싱을 비교하여 보여줍니다. | mxCalcSingleSubscript |
mxcreatecellmatrix.cmxcreatecellmatrixf.F | mx | 2차원 셀형 배열을 만듭니다. | Create 2-D Cell Array in C MEX File |
mxcreatecharmatrixfromstr.c | mx | 2차원 문자형 배열을 만듭니다. | mxCreateCharMatrixFromStrings |
mxcreatestructarray.c | mx | C 구조체에서 MATLAB 구조체를 생성합니다. | mxCreateStructArray |
mxcreateuninitnumericmatrix.c | mx | 초기화되지 않은 | mxCreateUninitNumericMatrix |
mxgeteps.cmxgetepsf.F | mx | MATLAB | mxGetEps |
mxgetinf.c | mx |
| mxGetInf |
mxgetnzmax.c | mx | 희소 행렬에 있는 0이 아닌 요소의 개수와 희소 행렬에 저장 가능한 0이 아닌 요소의 최대 개수를 표시합니다. | mxGetNzmax |
mxisclass.c | mx | 배열이 지정된 클래스의 멤버인지 여부를 확인합니다. | mxIsClass |
mxisfinite.c | mx | NaN 값과 무한대 값이 있는지 확인합니다. | mxIsFinite |
mxislogical.c | mx | 작업 공간 변수가 논리형 변수인지 전역 변수인지 확인합니다. | mxIsLogical |
mxisscalar.c | mx | 입력 변수가 스칼라인지 여부를 확인합니다. | mxIsScalar |
mxmalloc.c | mx | MATLAB | mxMalloc |
mxsetdimensions.cmxsetdimensionsf.F | mx | 배열의 형태를 변경합니다. | mxSetDimensions |
mxsetnzmax.c | mx | 희소 행렬을 위한 메모리를 다시 할당하고 pr, pi, ir 및 nzmax의 값을 재설정합니다. | mxSetNzmax |
passstr.F | refbook | C의 문자형 행렬을 Fortran에서 MATLAB으로 전달합니다. | |
phonebook.c | refbook | 구조체와 셀형 배열을 조작합니다. | C MEX 파일에 구조체와 셀형 배열 전달하기 |
phonebook.cpp | cpp_mex | phonebook.c와 같음. C++용 MATLAB Data API 사용. | C++ MEX 함수 |
revord.crevord.F | refbook | MATLAB | Pass Strings in C MEX File |
sincall.csincall.F, fill.F | refbook |
| |
timestwo.ctimestwo.F | refbook | MEX 파일의 일반적인 워크플로를 보여줍니다. | Pass Scalar Values in C MEX File |
xtimesy.cxtimesy.F | refbook | 여러 개의 파라미터를 전달합니다. | |
yprime.cyprimef.F, yprimefg.F | mex | 간단한 삼체 궤도 문제를 풉니다. | |
yprime.cpp | cpp_mex | yprime.c와 같음. C++용 MATLAB Data API 사용. | C++ MEX 함수 |
Fortran 서브루틴을 호출하는 MEX 함수
다음 표의 예제는 MEX 함수에서 LAPACK 함수나 BLAS 함수를 호출합니다. 이러한 예제는 Fortran 라이브러리 mwlapack과 mwblas 중 하나 또는 둘 모두에 연결됩니다. MEX 함수를 빌드하려면 추가 정보 열에 나와 있는 항목의 지침을 따르십시오.
| 예제 이름 | 예제 하위 폴더 | 설명 | 추가 정보 |
|---|---|---|---|
dotProductComplexIC.cdotProductComplexIC.FdotProductComplex.c | refbook | C 또는 Fortran MEX 파일에서 호출된 함수에 대한 Fortran 복소수 반환 유형을 처리합니다.dotProductComplexIC.c 및 dotProductComplexIC.F는 실수부/허수부 결합형 복소수 API를 사용합니다. dotProductComplex.c는 실수부/허수부 분리형 복소수 API를 사용합니다. | Handle Fortran Complex Return Type — dotProductComplex |
matrixDivide.c | refbook | LAPACK 함수를 호출합니다. | 입력값이 수정되지 않도록 보존하기 |
matrixDivideComplex.c | refbook | 복소수와 함께 LAPACK 함수를 호출합니다. | Pass Complex Variables — matrixDivideComplex |
matrixMultiply.c | refbook | BLAS 함수를 호출합니다. | C/C++ 프로그램에서 Fortran 함수에 인수 전달하기 |
utdu_slv.c | refbook | 부정부호 대칭 행렬 분해에 LAPACK을 사용합니다. | Symmetric Indefinite Factorization Using LAPACK — utdu_slv |