2015-01-21 63 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來運行該功能。
[抑制功能的命令窗口輸出]的