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 one. Then, my C++ program keeps going.
Is there any way to do this automatically coding the call in C++ when Matlab is open in the same computer?
Thanks in advance!
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.
mex
functions described here, here, here and the actual MATLAB documentation
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
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With