MATLAB: How to define a vector for multiple files

multiple filesvectors

I have a series of .txt tiles that all contain 3 columns; depth, temperature and salinity. I want to create a vector for depth, temperature and salinity for all of these files without individually writing out the names of each as there is a lot.
I tried to use the following script to accomplish this but get the error message 'index exceeds Matrix Dimensions'. Any help would be greatly appreciated.
files=dir('*.txt');
for i=1:length(files)
eval(['load ' files(i).name ' -ascii']);
end
Depth(:,1)=files(:,1);
Temp(:,1)=files(:,2);
Sal(:,1)=files(:,3);

Best Answer

Do not use eval!
files=dir('*.txt');
for i=1:length(files)
tempdata = load(files(i).name, '-ascii')
% now tempdata *only* holds the values from the last file.
% You want to store them for use, outside the for-loop.
% A convenient way is to use structures:
data(i).depth = tempdata(:,1) ;
data(i).temp = tempdata(:,2) ;
data(i).sal = tempdata(:,3)
end
Now, for instance,
allsal = cat(1,data(:).sal)
will give you all the salinity values of all files concatenated into a single vector