繁体   English   中英

在cmd中运行Matlab代码并等待其完成

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

我想在我的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...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM