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.c convec.F | refbook | 복소수 데이터를 전달합니다. | C MEX 파일의 복소수 데이터 처리하기 |
dblmat.F compute.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.c fulltosparse.c fulltosparse.F , loadsparse.F | refbook | 희소 행렬을 만듭니다. | Handle Sparse Arrays in C MEX File |
matsq.F | refbook | Fortran에서 행렬을 전달합니다. | |
matsqint8.F | refbook | Fortran에서 비double형 행렬을 전달합니다. | |
mexatexit.c mexatexit.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.c mexlockf.F | mex | MEX 파일을 잠그고 잠금 해제하는 방법입니다. | mexLock |
mxcalcsinglesubscript.c | mx | MATLAB의 1부터 시작하는 행렬 인덱싱과 C의 0부터 시작하는 인덱싱을 비교하여 보여줍니다. | mxCalcSingleSubscript |
mxcreatecellmatrix.c mxcreatecellmatrixf.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.c mxgetepsf.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.c mxsetdimensionsf.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.c revord.F | refbook | MATLAB | Pass Strings in C MEX File |
sincall.c sincall.F , fill.F | refbook |
| |
timestwo.c timestwo.F | refbook | MEX 파일의 일반적인 워크플로를 보여줍니다. | Pass Scalar Values in C MEX File |
xtimesy.c xtimesy.F | refbook | 여러 개의 파라미터를 전달합니다. | |
yprime.c yprimef.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.c dotProductComplexIC.F dotProductComplex.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 |