Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

빌드 환경 테스트하기

설치 및 환경을 테스트하기 위해 testFeval.cpp라는 이름의 파일에 다음 C++ 코드를 저장합니다(어떤 이름이든 사용할 수 있음). 명령 창에서 다음 명령을 사용하여 엔진 응용 프로그램을 빌드합니다.

mex -setup -client engine C++

mex 설정 스크립트에서 설치된 컴파일러 중 사용할 컴파일러를 묻는 메시지가 표시되면 컴파일러를 선택합니다. 그런 다음, mex 명령을 호출하여 프로그램을 빌드합니다. C++용 MATLAB® Engine API가 선택한 컴파일러를 지원하는지 확인하십시오. 지원되는 컴파일러의 최신 목록을 보려면 지원 및 호환되는 컴파일러 웹 사이트를 참조하십시오.

mex -v -client engine testFeval.cpp

mex 명령을 사용하면 동일한 폴더에 실행 파일이 저장됩니다.

#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;
}

다음은 이 프로그램에서 생성된 출력값입니다. 이 경우, 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

참고 항목

|

관련 항목