How to execute a Matlab script from C++

后端 未结 3 849
时光说笑
时光说笑 2020-12-10 08:12

I have a C++ program in Visual Studio that records data and saves it into a file. I want to do some Matlab analysis reading from that file and save the results in a separate

相关标签:
3条回答
  • 2020-12-10 08:41

    You can start a matlab engine from within a program, and run matlab scripts using matlab engine API.

    see documentation at: http://www.mathworks.com/help/matlab/calling-matlab-engine-from-c-c-and-fortran-programs.html

    0 讨论(0)
  • 2020-12-10 08:56

    There are many ways to call MATLAB from C++ depending on your needs. Many similar questions have been asked here in the past and I will refer to those and as well give you a solution as your requirement seems to be different.

    1. Do you want MATLAB C or C++ API? Then use mex functions described here, here, here and the actual MATLAB documentation
    2. Do you want to convert your MATLAB program to C++? Then use MATLAB Coder described here, here and here
    3. Do you want to run a MATLAB script from within C++? Then call MATLAB Engine or write a shell script and have that called from C++ described here and here

    Your problem falls under the third category. So you need to either call MATLAB engine (See Tal Darom's answer) or write a shell script. I will explain the latter. Lets write a shell script called matlab_script.sh:

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

    then in your C++ code do this:

    system("matlab_script.sh");
    

    You need matlab_script.sh to be executable. Under linux you normally do chmod +x matlab_script.sh

    0 讨论(0)
  • 2020-12-10 09:00

    You can make use of the Matlab Compiler SDK, which turns your matlab code into a standalone program or library.

    You can then call this libary from your C++ code, and the end user won't even need to have Matlab installed (just the Compiler Runtime, which you can deploy "royalty-free"), see this web page for what you can do with it.

    0 讨论(0)
提交回复
热议问题