我正在尝试从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;
}
答案 0 :(得分:2)
stdout输出未发送到MATLAB Engine控制台。您可以使用
指定自己的输出缓冲区char engOutput[300];
engOutputBuffer(ep, engOutput, 300);
engEvalString(ep, "disp('test')");
然后您必须自己打印engOutput
。
如果打印的目的只是为了验证引擎是否正常工作,您可以转到引擎控制台并输入“a”以查看变量是否已创建。