MATLAB: What is the effective error block statements when import many kinds of txt data

data importerrorimportdatatry/catch

Hi,
In my function, it import many text data and save it.
data1=importdata('data1.txt');
data2=importdata('data2.txt');
........
data100=importdata('data100.txt');
But in special case, there are some missing txt files so this error msg occurs.
Error using importdata (line 136)
Unable to open file.
so I have to block this error.
To use try/catch, all the 'import data' lines have to add try/catch.
try
data1=importdata('data1.txt');
catch
data1=0;
try
data2=importdata('data2.txt');
catch
data2=0;
........
try
data100=importdata('data100.txt');
catch
data100=0;
This would be very annoying and inefficient method. Is there are idea for solving this problem??

Best Answer

For a start this is one of the reasons why you absolutely should not create 100 different variables to load your data into.
Either use a numeric array or, if the data are different size, use a cell array of 100 indices.
Then you can do something more like this:
for n = 1:100
try
filename = [ 'data', num2str( n ), '.txt' ];
data{n}=importdata('data1.txt');
catch err
data{n} = 0;
end
end
try-catch blocks can be expensive in runtime though so simply checking if the file exists first would likely be more efficient if the only error you expect is from missing files.
I added the 'err' to the catch just because I would usually catch the error and try to deal with specific errors rather than just catch all errors, but if your aim is simply to put a 0 in if anything at all goes wrong on trying to load data then there is no need to do that in the try-catch approach.