[英]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.