이 페이지의 내용은 이전 릴리스에 관한 것입니다. 해당 영문 페이지는 최신 릴리스에서 제거되었습니다.
C++ 엔진 프로그램의 요소
C++용 MATLAB® Engine API를 사용하면 C++ 프로그램이 MATLAB과 동기식 또는 비동기식으로 상호 작용할 수 있습니다. 지원되는 연산은 다음과 같습니다.
MATLAB 시작.
로컬 컴퓨터에서 MATLAB 공유 세션에 연결.
C++에서 전달된 입력 인수와 MATLAB에서 반환된 출력 변수를 사용해서 MATLAB 함수 호출.
MATLAB 기본 작업 공간에서 MATLAB 명령문 실행.
C++에서 MATLAB으로 또는 MATLAB에서 C++로 변수 전달.
C++와 MATLAB 간에 전달되는 데이터 배열의 크기는 2GB로 제한됩니다. 이 크기 제한은 데이터뿐 아니라 프로세스 간에 전달되는 추가 정보에도 적용됩니다.
코딩 환경
C++용 MATLAB Engine API는 MATLAB 제품에 포함되어 있습니다. 전체 API는 C++ Engine API 항목을 참조하십시오. 이 API는 C++용 MATLAB Data API를 사용하여 MATLAB 데이터를 처리합니다.
API를 사용하기 전에 빌드 및 런타임 환경을 설정하십시오. 자세한 내용은 C++ 엔진 프로그램 빌드를 위한 요구 사항 항목을 참조하십시오.
코딩 패턴
이 예제에서는 다음 MATLAB 명령문과 동일한 명령을 실행하도록 C++ 코드를 작성하는 방법을 보여줍니다.
A = [4 8 6 -1 -2 -3 -1 3 4 5]; M = movsum(A,3,"Endpoints","discard");
이 C++ 코드는 데이터 배열로 구성된 벡터를 MATLAB movsum
함수에 전달한 후 그 결과를 반환합니다.
헤더 파일 포함하기
MATLAB 엔진 및 MATLAB 데이터 배열에 대한 헤더 파일을 추가합니다.
#include "MatlabEngine.hpp" #include "MatlabDataArray.hpp"
MATLAB 세션 시작하기
MATLAB 세션을 시작하고 인스턴스에 대한 고유 포인터를 가져옵니다.
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
MATLAB 데이터 배열 만들기
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") });
MATLAB 함수를 호출하고 결과를 반환하기
MATLABEngine::feval
멤버 함수를 사용하여 입력 인수와 함께 MATLAB movsum
함수를 호출합니다. 반환되는 결과를 double형의 MATLAB 데이터 배열로 정의합니다.
// Call MATLAB function with arguments and return results matlab::data::TypedArray<double> result = matlabPtr->feval(u"movsum", args);
참고 항목
matlab::engine::MATLABEngine
| matlab::data::ArrayFactory