我试图从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;
}

最佳答案

stdout输出不发送到MATLAB引擎控制台。您可以使用

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

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

然后您必须自己打印engOutput
如果打印的目的只是验证引擎是否工作,则可以转到引擎控制台并键入“a”以查看变量是否已创建。

关于c - 引擎功能:从C应用程序调用MATLAB,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9121964/

10-11 15:44