无法关闭文本文件,因为MATLAB在执行失败后使用它

Wus*_*uhn 3 matlab

我从命令窗口调用一个函数(包含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)

Jam*_*lby 5

您可能无法从函数外部访问句柄f,在这种情况下,您可以fclose('all')从Matlab命令窗口尝试.

通常,最好使用try .. catch ...围绕使用文件的代码的语句,以便在发生错误时始终调用fclose并释放句柄.

如果您仍然无法删除该文件,并假设它未被其他进程锁定(例如,如果您在Windows记事本中从外部查看它),则可能是您正在从Matlab调用库函数并且共享库维护文件锁.在这种情况下,请尝试使用unloadlibraryloadlibrary命令重新加载库.