如何在Matlab中停止从独立应用程序打印?

时间:2012-10-02 01:50:43

标签: matlab printing command-window

我必须从.m文件Gen.m执行独立应用程序aTool.exe 我在Gen.m中输入一个命令来执行aTool.exe

system('aTool.exe');

工作得很好。但是,由于aTool.exe对命令窗口进行了大量打印,因此完成运行此命令需要花费很长时间。我写了Gen.m. “aTool.exe”是一个开源应用程序,因此我无法访问源代码。 aTool.exe应该生成3个文本文件,Result1.txt,Result2.txt和Result3.txt。当它运行时,它会向屏幕输出一些处理消息。这三个文本文件是我需要的,但在运行时我不需要那些处理消息。

当我运行Gen.m文件时,有没有人知道如何阻止“aTool.exe”打印到命令窗口?我试过了

matlab -nodisplay -nojvm -nosplash -nodesktop -r Gen > matlab.out

它不起作用。命令窗口仍然弹出并开始打印。

1 个答案:

答案 0 :(得分:1)

您可以使用system的输出参数捕获变量中的输出。这可以让你检查错误,也可以从输出中提取有用的位。只要使用分号来抑制回显,它就不会显示在命令窗口中。

[status,result] = system('aTool.exe');

或者我认为您可以使用系统调用中的重定向来丢弃其输出。

system('aTool.exe > NUL');

以第一种方式捕获输出将使调试更容易从长远来看。但如果真的是大量的输出,你最终可能会缓冲很多数据。