在一个脚本中[确切地说:来自Artifact Detection Tools @ NITRC的art.m],有一个关闭(gcf)命令等待按下"返回"实际关闭所需窗口的关键(如果没有,matlab保持忙碌状态!)....
因此,无法在批处理过程中使用此脚本...
任何帮助都会非常感激。
编辑1:通过在Mac OS X(Matlab 2015b)上运行相同的脚本,我没有观察到这个问题....(我使用Fedora 22和Matlab 2013a)。在这种情况下,我不明白为什么操作系统可能很重要......这是MAtlab 2013a中的一个错误吗? ...
编辑2:我刚刚在我的电台上安装了2016a版本。我观察到同样的问题......答案 0 :(得分: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);']);
这是一种非常优雅的方式,可以在ART窗口关闭时删除临时文件,但在我的linux工作站上,我有一个别名,用于交互式删除文件或目录(别名rm' rm -i&#39 ;)...因此,当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);']);
下一版ART工具包含这个非常小的变化可能是个好主意......