2011-06-21 40 views
0

我有一個for循環,它在每次迭代中使用saveas(gcf,[%link,'.jpg'])保存圖像它在開始時運行良好,但崩潰並顯示錯誤消息是這樣的:爲什麼我試圖在MATLAB中保存圖像時出現「打開的文件太多」的錯誤消息

???使用錯誤==>打印在339無法創建輸出文件 '/20110301/20110301225100.jpg'

在==>在153 java.io.FileNotFoundException TSI_forecast_display_cloud_decision 155

錯誤錯誤在==>另存爲: /home/cwchow/.matlab/R2010a/matlab.prf(太多打開的文件)java.io.FileOutputStream.open(Native Method)在java.io.FileOutputStream。(Unknown Source)在java.io.FileOutputStream。(來源不明)在com.mathworks.services.Prefs.save(Prefs.java:295)在com.mathworks.services.Prefs $ SavePrefsThread.run(Prefs.java:702)

我得到了類似的結果如果我使用print。我猜想MATLAB沒有正確關閉文件導致打開的文件過多。任何人都可以告訴我如何避免這個錯誤?

UPDATE:

我想這兩個數字手柄和fclose('all')。我甚至使用close all,他們不工作。我仍然得到同樣的錯誤。我檢查了系統限制,它已經是1024.

回答

1

聽起來像你沒有關閉每個文件後,你已經保存到它。在Java中,當你完成時你可以調用close()。

4

嘗試在saveas(假設您沒有其他打開的文件句柄)後調用fclose('all'),確保saveas正確關閉文件句柄。據稱會固定在即將發佈的2011B

1

一個錯誤是如下:

描述:在一些Linux系統中, 基於Linux OS描述符 限制,正常使用MATLAB的可能 觸發以下錯誤:

Too many files open. 
Unexpected error status flag encountered. Resetting to proper 

狀態。雖然有些圖形用戶界面可能會繼續工作,但是MATLAB命令行會一直出錯 。解決方法:

[主機名::/家庭/ lusername] 1%限 描述符。如果描述符限制 被設定爲小於1024,復位 在Linux殼採用極限 命令檢查 Linux操作系統的限制描述符限制爲1024.這將是與外殼相關的 。在tcsh中,使用 該命令在啓動文件(如 .cshrc)中將是適當的:限制 描述符1024

相關問題