2016-09-09 167 views
-2

在一個腳本中[確切地說:來自Artifact Detection Tools @ NITRC的art.m],有一個關閉(gcf)命令,它等待按下「返回」鍵到實際關閉相應的窗口(如果沒有,MATLAB停留在繁忙狀態!)....等待返回鍵的close(gcf)命令

由於這個原因,它是不可能在一個批處理過程中使用這個腳本...

任何幫助將非常感激。編輯1:通過在Mac OS X上運行相同的腳本(Matlab 2015b)我沒有觀察到這個問題....(我使用Fedora 22和Matlab 2013a)。我不明白爲什麼操作系統在這種情況下可能很重要....是否是MAtlab 2013a中的一個錯誤? ...

編輯2:我剛剛在我的車站上安裝了2016a版本。我觀察到同樣的問題...

+0

如果您不提供腳本,它很難提供幫助。 –

+0

ART工具中有很多腳本需要考慮......我認爲提供所有腳本不是一個好主意......我只是理解了這個問題,這要感謝一位同事,這讓我處於良好的狀態通過建議看到closerequestfcn屬性,由於症狀...我會很快給出解決方案... – servoz

回答

0

問題來自圖形對象的closerequestfcn屬性。當前分佈式art.m腳本包含此行:

set(handles.figure1,'closerequestfcn',['try,if isunix,txt=''rm ''; else txt=''del ''; end; [nill,ok]=system([txt,''',fullfile(output_dir,art_mask_temporalfile),''']);catch;end;close(gcbf);']); 

這是一個非常優雅的方式來刪除臨時文件時關閉的藝術之窗,但我的Linux站上,我有一個別名交互式刪除文件或者目錄(別名rm'rm -i')...所以當Art工具在這個配置的linux站上運行時,close(gcf)命令等待一個交互動作...所以,如果你遇到這個症狀,由下面改變了以前行應該解決:

set(handles.figure1,'closerequestfcn',['try,if isunix,txt=''rm -f ''; else txt=''del ''; end; [nill,ok]=system([txt,''',fullfile(output_dir,art_mask_temporalfile),''']);catch;end;close(gcbf);']); 

這可能是一個好主意,藝術工具的下一個版本包括這個非常小的通道ange ...