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