MEX 함수의 소스 코드 예제 표
참고
C/C++ 라이브러리의 함수를 바로 호출하려면 MATLAB® R2023a 이상에서 clibPublishInterfaceWorkflow를 사용하여 코드를 작성하는 것이 좋습니다. 또는 최신 C++ 기능과 C++용 MATLAB Data API 항목을 사용하여 MEX 함수를 작성하려면 MATLAB에서 호출 가능한 C++ 함수 작성하기(MEX 파일) 항목을 참조하십시오.
다음 표에는 C Matrix API에서 mxArray를 사용하여 예제 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(c,".","f")
C, C++ 및 Fortran MEX 함수
MATLAB 또는 운영 체제 프롬프트에서 예제 MEX 함수를 빌드하려면 다음 명령 구문을 사용하십시오. 여기서 filename은 예제 이름이고 release-option은 예제에서 사용하는 API를 지정합니다. MATLAB API에 대한 자세한 내용은 MEX 애플리케이션 선택하기 항목을 참조하십시오.
mex -v -release-option filename
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 |
참고 항목
clibPublishInterfaceWorkflow | mex