开发者

How can I continue with a loop when an error occurs in MATLAB?

开发者 https://www.devze.com 2023-01-15 18:47 出处:网络
I\'m converting some .dat files into .mat files using a function. I\'m calling this function inside a loop to convert a number of files. There are some cases where my .dat file is corrupted and the fu

I'm converting some .dat files into .mat files using a function. I'm calling this function inside a loop to convert a number of files. There are some cases where my .dat file is corrupted and the function cannot convert and an error occurs, stopping the loop.

Now my question is: Is there any command wherein when the error occurs it should skip the current (i) value in the loop and go for the next increment value (in my case the next f开发者_如何学Pythonile)?


You can do this using a TRY/CATCH statement along with CONTINUE. Place the following inside your loop:

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:

Amro suggests a good idea in his comment below. You may want to issue a warning showing that the error occurred and for which file, or perhaps you may even want to save a list of the files that failed to convert properly. To do the latter, you can first initialize an empty cell array before you start your loop:

failedFiles = {};  %# To store a list of the files that failed to convert

Then, after you catch the exception but before you issue the continue command, add the name/path of the current file being converted to the list:

...
catch exception
  failedFiles = [failedFiles; {'currentFile.dat'}];
  continue
end

When your loop is done, you can then look at failedFiles to easily see what didn't convert properly.

0

精彩评论

暂无评论...
验证码 换一张
取 消