Visual studio 如何在后台运行MATLAB

Visual studio 如何在后台运行MATLAB,visual-studio,matlab,fortran,interop,Visual Studio,Matlab,Fortran,Interop,我有两个项目: 一个Fortran程序,使用英特尔编译器和Visual studio 2013 Windows 10进行大量计算。它生成一个dataintomatlab.dat文件作为MATLAB程序的输入,并从MATLAB接收一个dataoutmatlab.dat文件 一个MATLAB m.文件,将数据加载到MATLAB.dat中,并将数据另存为dataoutmatlab.dat,作为Fortran程序的输入 以下代码用于将Fortran程序与MATLAB链接: result_matlab =

我有两个项目:

  • 一个Fortran程序,使用英特尔编译器和Visual studio 2013 Windows 10进行大量计算。它生成一个dataintomatlab.dat文件作为MATLAB程序的输入,并从MATLAB接收一个dataoutmatlab.dat文件
  • 一个MATLAB m.文件,将数据加载到MATLAB.dat中,并将数据另存为dataoutmatlab.dat,作为Fortran程序的输入
  • 以下代码用于将Fortran程序与MATLAB链接:

    result_matlab = SYSTEMQQ("C:\PROGRA~1\MATLAB\R2019a\bin\matlab.exe" -wait -nodesktop -nosplash -r "my_mfile")
    
    但是,这对于大型计算来说并不有效,因为MATLAB程序必须在每个时间步启动和关闭,这需要花费大量时间


    有没有办法在后台运行MATLAB而不启动并每次关闭,并且只在MATLAB.dat检测到数据更新时让MATLAB工作?还是有更好的办法将Fortran程序与MATLAB连接起来

    您可以使用MATLAB的
    System.IO.FileSystemWatcher
    监视文件的更改(并相应地做出响应)。请参见MATLAB中的
    doc use.net events
    ,您也可以使用
    mcc
    编译MATLAB代码,并将其链接到fortran以生成可执行文件,然后在程序开始时只需加载一次MRC。或者,您也可以通过另一种方式,从MATLAB调用fortran代码。如果使用Mex函数,您甚至可以节省文件交换的时间。您可以使用MATLAB的
    System.IO.FileSystemWatcher
    来监视文件的更改(并做出相应的响应)。请参见MATLAB中的
    doc use.net events
    ,您也可以使用
    mcc
    编译MATLAB代码,并将其链接到fortran以生成可执行文件,然后在程序开始时只需加载一次MRC。或者,您也可以通过另一种方式,从MATLAB调用fortran代码。如果使用Mex函数,甚至可以节省文件交换的时间。