2012-02-03 2 views
1

C 응용 프로그램에서 사용자 정의 MATLAB 함수를 호출하려고하지만 가장 간단한 엔진 시나리오가 작동하는 데 문제가 있습니다. 다음은 단순히 a = 1을 MATLAB 명령 창에 인쇄해야하는 프로그램입니다. 그러나 그것을 실행할 때 아무 일도 일어나지 않습니다!엔진 함수 : C 응용 프로그램에서 MATLAB 호출

#include "engine.h" 
#include <stdlib.h> 
#include <stdio.h> 
#include <string.h> 

int main() 
{ 
    Engine *ep; 

    if (!(ep = engOpen("\0"))) { 
    fprintf(stderr, "\nCan't start MATLAB engine\n"); 
    return EXIT_FAILURE; 
    } 

    engOutputBuffer(ep, NULL, 0); 

    engEvalString(ep, "a = 1"); 

    engClose(ep); 
    return EXIT_SUCCESS; 
} 
+0

코드를 디버깅하면 어떻게됩니까? 너 뭐가 보이니? –

+0

나는 엔진과 matlab 탭을 제거하고 matlab-engine을 넣는다. 아마 당신에게 더 많은 관심을 갖게 될 것이다. –

답변

2

stdout 출력이 MATLAB 엔진 콘솔에 전송되지 않습니다. 당신은 그런 다음 자신 engOutput를 인쇄해야합니다

char engOutput[300]; 
engOutputBuffer(ep, engOutput, 300); 

engEvalString(ep, "disp('test')"); 

사용하여 자신의 출력 버퍼를 지정할 수 있습니다.

인쇄의 목적이 엔진이 작동하는지 확인하는 것이라면 엔진 콘솔로 이동하여 "a"를 입력하여 변수가 만들어 졌는지 확인할 수 있습니다.

+0

정말 고마워요! :) – user1125353