如何从C++执行Matlab脚本

Sla*_*ash 5 c++ matlab

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

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

提前致谢!

rom*_*ric 6

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

  1. 你想要MATLAB C或C++ API吗?然后使用此处,此处,此处和实际MATLAB文档中mex描述的函数
  2. 您想将MATLAB程序转换为C++吗?然后使用MATLAB编码器描述在这里,这里这里
  3. 你想在C++中运行MATLAB脚本吗?然后调用MATLAB Engine或编写一个shell脚本,并从此处此处描述的C++调用

您的问题属于第三类.因此,您需要调用MATLAB引擎(请参阅Tal Darom的答案)或编写shell脚本.我将解释后者.让我们写一个名为的shell脚本matlab_script.sh:

#/bin/sh
matlab -nodisplay -nojvm -nosplash < your_matlab_file.m 
Run Code Online (Sandbox Code Playgroud)

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

system("matlab_script.sh");
Run Code Online (Sandbox Code Playgroud)

你需要matlab_script.sh可执行.在linux下你通常会这样做chmod +x matlab_script.sh