QtCreator 환경에서 C++을 사용하여 이미지 분석을하고 있습니다. 학습 모델을 구축하기 위해 MATLAB의 TreeBagger 클래스를 사용하고 싶습니다. 정말 강력합니다. QtCreator에서 MATLAB을 호출하고, 매개 변수를 제공하고, 분류 오류를 되 찾을 수 있습니까? mex 파일을 사용하지 않고도이 작업을 수행 할 수 있습니까? QProcess의 동기 프로세스 API의 예에서QtCreator에서 Matlab을 호출 할 수 있습니까?
1
A
답변
2
:
QProcess gzip;
gzip.start("gzip", QStringList() << "-c");
if (!gzip.waitForStarted())
return false;
gzip.write("Qt rocks!");
gzip.closeWriteChannel();
if (!gzip.waitForFinished())
return false;
QByteArray result = gzip.readAll();
이 예 바람직하고 즉시에 스크립트를 작성 시작한다 무엇 이건을 설정 승/MATLAB을 실행 할 수있는 과정입니다에서에 대한 개념. 쓰기 후에; 당신은 채널을 닫고, 응답을 기다린 다음, matlab에서 결과를 읽을 수있다. 불행히도, 나는 더 직접적인 예를 제공하는 데 경험이 없지만, 이것은 대부분의 경우에 대한 개념이다. 문서를 조사하여 다른 것을 찾으십시오.
1
Matlab에는 독립 실행 형 프로그램이 matlab 기능을 호출 할 수 있도록 설명한 here이라는 "엔진"인터페이스가 있습니다. 그것은 engPutVariable
및 engGetVariable
이진 형식으로 데이터를 전송할 수있는 장점이 있습니다 (나는 당신의 프로세스와 matlab 사이의 공유 메모리를 사용하여 작동한다고 생각하지만, 이것에 대해서는 잘 모르겠습니다), 그렇게하지 않아도됩니다. 데이터를 ascii로 변환하고 ascii에서 결과를 구문 분석하십시오.
C++의 경우 RAII에 대한 래퍼 클래스를 작성하거나 http://www.codeproject.com/Articles/4216/MATLAB-Engine-API을 살펴볼 수 있습니다. 이미 완료되었습니다.
matlab.exe를 열어보고 QProcess와 같은 방법으로 작업 했습니까? – dans3itz
@ dans3itz 아니, 더 자세히 알려주시겠습니까? – WildThing