在回答之前,我不想寻找;
抑制命令行打印的功能。
我有一套不是我的剧本,我没有能力改变。但是,在我的脚本中,我通过evalin('base', 'scriptName')
调用这些其他脚本。不幸的是,这些其他脚本对命令窗口进行了大量不必要且丑陋的打印,我不想看到这些打印。在无法编辑这些其他脚本的情况下,我想要一种在执行这些其他脚本时禁止向命令行输出的方法。
一个可能的答案是使用evalc
,但当我尝试evalc(evalin('base', 'scriptName'))
时,MATLAB抛出一个错误,抱怨它不能将脚本作为函数执行。我希望有类似于禁用命令窗口打印的功能,或者将所有输出重定向到一些空文件,就像unix中的/dev/null
一样。
我认为您只需要将evalc
示例中的参数转换为字符串:
evalc('evalin(''base'', ''scriptName'')');
您尝试过这个解决方案吗在这里
echo off;
我不知道它是否符合您的需求,但另一个解决方案可以是打开一个新的Matlab会话,并只使用最小化的-nodesktop
形式(仅使用命令窗口)。您可以从那里运行烦人的脚本,并像往常一样处理主会话。
这里的问题是会话不能同步,所以如果你需要一直处理脚本的结果,这会有点复杂。也许你可以把结果保存到磁盘上,而不是从主会话中调用它。。。但这主要取决于您使用这些脚本的工作流程。