2015-01-21 58 views
0

我有一个MatLab函数,其中我有一个for循环,在每次迭代中从库中调用一个外部函数。如何防止外部函数写入控制台?

不幸的是,这个函数在每次调用时都会产生100行控制台输出,我的for循环(parfor是精确的)有10k-100k的迭代次数!

所以我寻址基本上2个问题:

  • 输出控制台极为混乱并且几乎不可读
  • 一致的(或接近这样)在代码执行减缓

第一个问题是目前最烦人的,但我想解决这两个问题。

我想知道是否有办法阻止函数产生文本输出。

+1

可能重复(http://stackoverflow.com/questions/3029636/suppressing-a-functions-command-window-output) – 2015-01-21 10:43:54

+1

在我用EVALC结束所建议在另一个问题和丹尼尔的这个问题中。 唯一的问题是关于在parfor中不能使用的evalc,所以我在另一个函数中包装了我的evalc,并且都工作正常。 – vitokr 2015-01-21 14:53:13

回答

2

有两种可能性:

  1. 您可以创建旁边的功能private文件夹,将一个空函数fprintf(或任何用于打印)内。这样你就可以用一个新的函数覆盖内置函数,而无需执行任何操作。
  2. 使用evalc来运行该功能。
[抑制功能的命令窗口输出]的