c++ - 如何从 C++ 执行 Matlab 脚本

标签 c++ matlab

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

当在同一台计算机上打开 Matlab 时,有什么方法可以自动用 C++ 编写调用代码吗?

提前致谢!

最佳答案

根据您的需要,可以通过多种方式从 C++ 调用 MATLAB。过去这里曾问过许多类似的问题,我将引用这些问题并为您提供解决方案,因为您的要求似乎有所不同。

  1. 您需要 MATLAB C 还是 C++ API?然后使用 mex 描述的函数 here , here , here和实际的MATLAB documentation
  2. 您想将您的 MATLAB 程序转换为 C++ 吗? 然后使用 MATLAB Coder描述 here , herehere
  3. 您想从 C++ 中运行 MATLAB 脚本吗?然后调用 MATLAB Engine或编写一个 shell 脚本并描述从 C++ 调用的 herehere

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

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

然后在您的 C++ 代码中执行此操作:

system("matlab_script.sh");

您需要 matlab_script.sh 才能执行。在 linux 下你通常做 chmod +x matlab_script.sh

关于c++ - 如何从 C++ 执行 Matlab 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32115766/

相关文章:

python - scipy 多项式 pmf 返回 nan

user-interface - 如何使用 MATLAB 显示文件或目录浏览器对话框

python - 预分配多个形状相同的 numpy 数组

matlab - 如何将 x 中高于均值的值设置为与 MATLAB 中均值的差值

c++ - 构建时如何在 Visual Studio C++ 中加载文件

c++ - 如何避免与 VSConstants.S_OK 字段命名冲突?

c++ - 如何将从字符串中取出的字符转换为int?

c++ - 为什么 BOOST_TEST((Iterator == Iterator)) 需要额外的括号?

c++ - 函数调用运算符的继承和重载

string - 在matlab的单元格中查找字符串(来自表)