C++ 빌드 환경 테스트하기
C++ 예제 testFeval
만들기
C++용 MATLAB® Engine API를 사용하는 애플리케이션 빌드에 필요한 설치 및 환경을 테스트하기 위해 testFeval.cpp
라는 파일(어떤 이름이든 사용할 수 있음)에 다음 C++ 코드를 저장합니다.
#include "MatlabDataArray.hpp" #include "MatlabEngine.hpp" #include <iostream> void callSQRT() { using namespace matlab::engine; // Start MATLAB engine synchronously std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB(); //Create MATLAB data array factory matlab::data::ArrayFactory factory; // Define a four-element typed array matlab::data::TypedArray<double> const argArray = factory.createArray({ 1,4 }, { -2.0, 2.0, 6.0, 8.0 }); // Call MATLAB sqrt function on the data array matlab::data::Array const results = matlabPtr->feval(u"sqrt", argArray); // Display results for (int i = 0; i < results.getNumberOfElements(); i++) { double a = argArray[i]; std::complex<double> v = results[i]; double realPart = v.real(); double imgPart = v.imag(); std::cout << "Square root of " << a << " is " << realPart << " + " << imgPart << "i" << std::endl; } } int main() { callSQRT(); return 0; }
지원되는 C++ 컴파일러 선택하기
MATLAB 명령 프롬프트에서 다음을 입력합니다.
mex -setup -client engine C++
사용하려는 설치된 컴파일러를 선택합니다. 지원되는 컴파일러의 최신 목록을 보려면 지원 및 호환되는 컴파일러를 참조하십시오.
testFeval
예제 빌드하기
엔진 애플리케이션을 빌드하려면 다음 명령을 입력합니다. mex
명령을 사용하면 현재 폴더에 실행 파일이 저장됩니다.
mex -v -client engine testFeval.cpp
런타임 환경 설정하기
다음의 플랫폼별 런타임 환경 변수를 설정합니다.
운영 체제 | 변수 | 경로 |
---|---|---|
Windows® |
|
|
Apple Silicon이 탑재된 macOS |
|
|
Intel®이 탑재된 macOS |
|
|
Linux® |
|
|
testFeval
예제 실행하기
프로그램을 호출합니다.
!testFeval.exe
다음은 이 프로그램에서 생성된 출력값입니다. 이 경우, MATLAB은 데이터 배열에 포함된 숫자 중 하나가 음수이기 때문에 복소수 배열을 반환합니다.
Square root of -2 is 0 + 1.41421i Square root of 2 is 1.41421 + 0i Square root of 6 is 2.44949 + 0i Square root of 8 is 2.82843 + 0i
참고 항목
mex
| matlab::engine::MATLABEngine