I trying to do script to evalute my lab data into matlab, I have lots of txt files for many samples, each sample has 30 txt files. I did a function to get the data from these files and store them into a structure that contains data and labels. I would like to know if it is possible to load all the 30 files using loop instead of line by line .
function s = try1(fn) % adapt for other file format according to your needs fid = fopen(fn); s.data = []; % skip first lines
for k=1:6 l = fgetl(fid); % read header
a = regexp(l,',','split'); s.labels = a; l = fgetl(fid); k=0; end while( (l~=-1)&(k<130) ) l = l(1:end-1); a = regexp(l,', ','split'); a = regexpre p(a, ',','.'); s.data = [s.data; str2double(a(2:4))]; l = fgetl(fid); k = k+1; end fclose(fid);end
then i used this code to fetch the data form folder directory
dataDirectory = 'c:/myDirectory'; allFilesDir = dir(fullfile(dataDirectory , '*.txt')); allFN = {allFilesDir.name} % Or do this:
% allFN = {'file1.txt', 'file2.txt'};
result = []; for ind = 1:length(allFN) myFN = fullfile(dataDirectory, allFN{ind}); result(ind) = try1(myFN); end % Now get the mean:
myMean = mean([result.data])
but i got this error The following error occurred converting from struct to double: Error using ==> double Conversion to double from struct is not possible. Error in ==> getmean at 13 result(ind) = try1(myFN); any idea about porb \\
Best Answer