簡體   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