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