How to execute a Matlab script from C++

后端 未结 3 868
时光说笑
时光说笑 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: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

提交回复
热议问题