在Matlab中捕获实时命令窗口输出

时间:2013-07-04 22:32:08

标签: matlab

我在Matlab 2012a中使用dos函数执行命令:

[status,output] = dos('example.exe','-echo');

在执行期间,该命令在命令窗口中显示一个处理了百分比的字符串,我想使用此信息在GUI中创建waitbar,但我不能在“期间使用它” “执行。有没有其他方法可以实时获取命令窗口内容?如果没有,我还能做些什么来为我的命令制作一个等待吧?

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

您无法使用MATLAB的dos(或相关的systemunix),因为它们(正如您已经注意到的)是同步的,只有在应用程序返回时才会返回已经结束了。

您需要的是异步运行外部程序和waitbar代码。这不能在纯MATLAB代码中完成,但可以使用Java(可直接在MATLAB中使用):

  1. 用Java编写一个运行程序的类,并异步收集输出。有关详细信息,请参阅this answer on SO

  2. 在读取新输出数据时,让Java类调用MATLAB回调。然后,MATLAB回调可以更新等待条。有关详细信息,请参阅this post on undocumentedmatlab.com