在CMD中运行MATLAB代码,然后等待完成

run a Matlab code in cmd and wait for it to finish

本文关键字:然后 等待 代码 CMD 运行 MATLAB      更新时间:2023-10-16

我想在我的C 程序中运行MATLAB代码,并等待MATLAB的结果,然后继续进行C 代码。问题在于该程序不会等待MATLAB并继续运行。我应该在我的代码中添加任何东西吗?

实际上我尝试创建过程并使用了waitforsingleobject。

int main()
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );

    system("matlab.exe -nosplash -nodesktop -nodisplay -r run('Main')");
    WaitForSingleObject( pi.hProcess, INFINITE );
    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );
.
.
.
}

您可能需要使用选项

-batch

到matlab而不是选项

-r

例如。有关更多详细信息,请参见此页面:https://www.mathworks.com/help/matlab/ref/matlabwindows.html


此外,std::system调用是'独立' - 但是,您应该检查启动的过程的返回。

int ret = std::system("....");
if (ret != 0) {
  std::terminate();//somethings not right...
}