1

C アプリケーションからユーザー定義の MATLAB 関数を呼び出そうとしていますが、最も単純なエンジン シナリオでさえうまく動作しません。a = 1以下は、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; 
} 
4

1 に答える 1

2

stdout出力はMATLABEngineコンソールに送信されません。を使用して独自の出力バッファを指定できます

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

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

次に、自分で印刷する必要がありengOutputます。

印刷の目的がエンジンが機能していることを確認することだけである場合は、エンジンコンソールに移動し、「a」と入力して、変数が作成されたことを確認できます。

于 2012-02-03T14:07:39.637 に答える