Main Content

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

C++용 Engine API 소개

C++용 MATLAB® Engine API를 사용하면 C++ 프로그램이 MATLAB과 동기식 또는 비동기식으로 상호 작용할 수 있습니다. 지원되는 연산은 다음과 같습니다.

  • MATLAB 시작.

  • 로컬 컴퓨터에서 MATLAB 공유 세션에 연결.

  • C++에서 전달된 입력 인수와 MATLAB에서 반환된 출력 변수를 사용해서 MATLAB 함수 호출.

  • MATLAB 기본 작업 공간에서 MATLAB 명령문 실행.

  • C++에서 MATLAB으로 또는 MATLAB에서 C++로 변수 전달.

C++용 MATLAB Engine API는 MATLAB 제품에 포함되어 있습니다. 전체 API는 항목을 참조하십시오.

시작하기

C++용 MATLAB Engine API는 일련의 C++ 헤더 파일과 C 런타임 공유 라이브러리로 구성됩니다. 네임스페이스 matlab::engine은 여러 개의 유틸리티 함수와 C++ 클래스 집합을 포함합니다.

빌드 및 런타임 환경을 설정하는 것으로 C++용 MATLAB Engine API 사용을 시작합니다. 지원되는 컴파일러가 설치되어 있는지 확인하십시오. MATLAB mex 명령을 사용하여 환경을 설정하고 C++ 응용 프로그램을 빌드합니다. IDE를 구성하여 Engine API를 사용하는 C++ 응용 프로그램을 빌드할 수도 있습니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 C++ 엔진 프로그램 빌드하기 항목을 참조하십시오.

Engine API에서는 MATLAB Data API 사용을 지원합니다. 이 API를 사용하면 MATLAB 외부에서 실행되는 응용 프로그램이 MATLAB 데이터를 처리할 수 있습니다. 이 API에 대한 자세한 내용은 C++용 MATLAB Data API 항목을 참조하십시오.

C++ 엔진 프로그램의 기본 요소

다음은 MATLAB 명령을 실행하는 데 사용되는 기본 요소를 보여주는 단순한 C++ 엔진 코드입니다. 이 코드는 데이터 배열로 구성된 벡터를 MATLAB 함수 movsum에 전달한 후 그 결과를 반환합니다. 이 C++ 코드는 MATLAB에서 다음 명령문과 동일한 명령을 실행합니다.

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movsum(A,3,'Endpoints','discard');

C++ 엔진 코드의 기본 요소

MATLAB 엔진 및 MATLAB 데이터 배열에 대한 헤더 파일을 추가합니다.

#include "MatlabEngine.hpp"
#include "MatlabDataArray.hpp"

MATLAB 세션을 시작하고 인스턴스에 대한 고유 포인터를 가져옵니다.

std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();

MATLAB 데이터 배열 팩토리를 만들어 matlab::engine::MATLABEngine 멤버 함수에서 사용되는 데이터형을 생성합니다.

matlab::data::ArrayFactory factory;

MATLAB 함수에 대한 입력 인수로 사용할 MATLAB 데이터 배열로 구성된 벡터를 정의합니다. 각 인수는 벡터에 포함된 배열입니다.

// Create a vector of MATLAB data arrays for arguments    
std::vector<matlab::data::Array> args({
    factory.createArray<double>({ 1, 10 }, { 4, 8, 6, -1, -2, -3, -1, 3, 4, 5 }),
    factory.createScalar<int32_t>(3),
    factory.createCharArray("Endpoints"),
    factory.createCharArray("discard")
});

MATLABEngine::feval 멤버 함수를 사용하여 MATLAB movsum 함수를 호출합니다. 반환되는 결과를 올바른 유형의 MATLAB 데이터 배열로 정의합니다.

// Call MATLAB function with arguments and return results
matlab::data::TypedArray<double> result = matlabPtr->feval(u"movsum", args);

참고 항목

|

관련 항목