我正在使用函数将一些 .dat 文件转换为 .mat 文件。我在循环内调用此函数来转换多个文件。在某些情况下,我的 .dat 文件已损坏,函数无法转换并发生错误,从而停止循环。
现在我的问题是:是否有任何命令,当错误发生时,它应该跳过循环中的当前(i)值并转到下一个增量值(在我的情况下是下一个文件)?
您可以使用试着抓 http://www.mathworks.com/help/techdoc/ref/try.html声明连同CONTINUE http://www.mathworks.com/help/techdoc/ref/continue.html。将以下内容放入循环中:
try %# Attempt to perform some computation
%# The operation you are trying to perform goes here
catch exception %# Catch the exception
continue %# Pass control to the next loop iteration
end
EDIT:
阿姆罗在下面的评论中提出了一个好主意。您可能想要发出警告,显示发生了错误以及哪个文件发生了错误,或者您甚至可能想要保存未能正确转换的文件列表。要执行后者,您可以在开始循环之前首先初始化一个空元胞数组:
failedFiles = {}; %# To store a list of the files that failed to convert
然后,在捕获异常之后但在发出之前continue
命令,将当前正在转换的文件的名称/路径添加到列表中:
...
catch exception
failedFiles = [failedFiles; {'currentFile.dat'}];
continue
end
循环完成后,您可以查看failedFiles
轻松查看哪些内容未正确转换。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)