如何从C ++执行Matlab脚本

时间:2015-08-20 10:27:49

标签: c++ matlab

我在Visual Studio中有一个C ++程序,它记录数据并将其保存到文件中。我想从该文件中读取一些Matlab分析并将结果保存在单独的文件中。然后,我的C ++程序继续进行。

当Matlab在同一台计算机上打开时,有没有办法在C ++中自动编写调用?

提前致谢!

3 个答案:

答案 0 :(得分:5)

根据您的需要,有许多方法可以从C ++调用MATLAB。过去在这里已经提出了许多类似的问题,我将参考这些问题并提供解决方案,因为您的要求似乎有所不同。

  1. 您想要MATLAB C还是C ++ API?然后使用hereherehere和实际mex所述的matlab_script.sh函数3}}
  2. 您想将MATLAB程序转换为C ++吗?然后使用MATLAB documentationMATLAB Coderhere
  3. 中描述的here
  4. 您想在C ++中运行MATLAB脚本吗?然后调用here或编写一个shell脚本,并从C ++调用MATLAB Engine和{{3 }}
  5. 您的问题属于第三类。所以你需要调用MATLAB引擎(参见Tal Darom的回答)或编写shell脚本。我将解释后者。让我们编写一个名为#/bin/sh matlab -nodisplay -nojvm -nosplash < your_matlab_file.m 的shell脚本:

    system("matlab_script.sh");
    

    然后在你的C ++代码中执行以下操作:

    matlab_script.sh

    您需要chmod +x matlab_script.sh才能执行。在linux下,您通常会^{:key phone} [phone-component phone]

答案 1 :(得分:1)

您可以从程序中启动matlab引擎,并使用matlab引擎API运行matlab脚本。

请参阅文档:http://www.mathworks.com/help/matlab/calling-matlab-engine-from-c-c-and-fortran-programs.html

答案 2 :(得分:1)

您可以使用the Matlab Compiler SDK,将您的matlab代码转换为独立的程序或库。

然后,您可以从C ++代码中调用此库,最终用户甚至不需要安装Matlab(只需编译器运行时,您可以部署&#34;免版税&#34;) ,请参阅this web page了解您可以使用它做什么。