在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...
}
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 这是我尝试让用户将值输入到数组中.然后将其隐藏为大量的星号
- boost::asio如何生成多个协同程序,然后加入它们
- 如何让LLDB在成功时退出,在失败时等待
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- 等待整个 omp 块完成,然后再调用第二个函数
- 在CMD中运行MATLAB代码,然后等待完成
- 等待所有线程完成一项工作,然后执行另一项工作
- boost::asio::ip::tcp::iostream,先启动客户端,然后等待服务器
- 将光标更改为沙漏/等待/忙碌光标,然后返回Qt
- 等待buttonPressed()插槽完成,然后执行buttonRelease()
- 等待另一个进程锁定然后解锁 Win32 互斥锁
- 打开另一个表单,然后等待该表单返回响应
- 在Linux上,从C++调用一个可执行文件,然后等待它完成
- 我如何打开/等待一个程序在c++中完成,然后运行另一个
- Qt websocket发送消息并等待响应,然后再进入下一个方法
- 线程广播,然后等待
- 如何告诉QThread等待,直到工作完成,然后结束