如何从c++执行Matlab脚本

How to execute a Matlab script from C++

本文关键字:Matlab 脚本 执行 c++      更新时间:2023-10-16

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

当Matlab在同一台计算机中打开时,是否有任何方法可以自动编码c++中的调用?

提前感谢!

根据您的需要,有许多方法可以从c++调用MATLAB。过去这里已经问过许多类似的问题,我将参考这些问题,并根据您的要求提供解决方案。

  1. 您想要MATLAB C或c++ API吗?然后使用这里,这里,这里描述的mex函数和实际的MATLAB文档
  2. 你想把你的MATLAB程序转换成c++吗?然后使用MATLAB编码器描述这里,这里和这里
  3. 您想从c++内运行MATLAB脚本吗?然后调用MATLAB引擎或编写shell脚本,并从这里和这里描述的c++调用

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

#/bin/sh
matlab -nodisplay -nojvm -nosplash < your_matlab_file.m 

,然后在c++代码中这样做:

system("matlab_script.sh");

需要matlab_script.sh是可执行的。在linux下,您通常执行chmod +x matlab_script.sh

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

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

您可以使用Matlab编译器SDK,它将您的Matlab代码转换为独立的程序或库。

然后您可以从您的c++代码调用此库,最终用户甚至不需要安装Matlab(只是编译器运行时,您可以部署"免版税"),请参阅此网页了解您可以用它做什么。