我从命令窗口调用一个函数(包含fopen和fclose),然后在MATLAB遇到我修复的错误(程序的运行时在我保存更正后停止),我想删除它创建的文件,以便重复这个过程.然而,MATLAB,不知何故,仍然打开文件并输入fclose(f),在命令窗口中不会让MATLAB放开文件.
function something(something)
f = fopen('something.txt', 'w');
%statments with fprintf
fclose(f);
end
Run Code Online (Sandbox Code Playgroud)
您可能无法从函数外部访问句柄f,在这种情况下,您可以fclose('all')从Matlab命令窗口尝试.
通常,最好使用try .. catch ...围绕使用文件的代码的语句,以便在发生错误时始终调用fclose并释放句柄.
如果您仍然无法删除该文件,并假设它未被其他进程锁定(例如,如果您在Windows记事本中从外部查看它),则可能是您正在从Matlab调用库函数并且共享库维护文件锁.在这种情况下,请尝试使用unloadlibrary和loadlibrary命令重新加载库.