How to open multiple text files and populating matrices with the data
    3 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    Md. Golam Mostafa
 le 19 Nov 2016
  
    
    
    
    
    Modifié(e) : Md. Golam Mostafa
 le 21 Nov 2016
            I have written the following codes to open a text file and populate a matrix with the data. It works fine.
fid=fopen('01_06_13hi.txt'); %Opens the file
allData =[]; %Creats a matrix to store all data
n = 0;
while feof(fid)== 0;
    d1 = fgetl(fid);  % reading the file line by line
    if strfind(d1,'-NaN') %Overrules the 'Not a Number' value
    else   
        n=n+1;
        ind= find(d1(:)==':'); %finds ':' in the data string and storing in variable 'ind'
        ind2 = find(d1(:)=='/'); %finds '/' in the data string and storing in variable 'ind2'
        d1(ind) = ' '; %string data
        d1(ind2) = ' '; %string data
        d2 = str2num(d1); % converting the data from string to number
        allData(n,:) = d2; %Storing data of d2
    end
end
Now I have some 630 .txt files. I have tried to modify the the code as follows:
filesFolder = 'lo_hi1/';
allTextFiles = dir([filesFolder,'*.txt']);
numberOfTextFiles = numel(allTextFiles);
nameOfTextFiles = {allTextFiles.name};
allData =[];
n = 0;
for i=1:numberOfTextFiles
    fileID=fopen(nameOfTextFiles{i});
      while feof(fileID)== 0;
          d1 = fgetl(fileID);
          if strfind(d1,'-NaN')
          else
              n=n+1;
              ind= find(d1(:)==':');
              ind2 = find(d1(:)=='/');
              d1(ind) = ' ';
              d1(ind2) = ' ';
              d2 = str2num(d1);
              allData(n,:) = d2;
          end
      end
      fclose(fileID); %closing the file
end
I expected it to work but unfortunately it is not working. The command window showed the following:
Error using feof Invalid file identifier. Use fopen to generate a valid file identifier.
Error in multifileload (line 15) while feof(fileID)== 0;
Can anyone help me out?
2 commentaires
  dpb
      
      
 le 19 Nov 2016
				Well, what does "not working" mean, precisely? We don't have your data so can't run it and can't see your terminal from here, either...
Réponse acceptée
  Walter Roberson
      
      
 le 20 Nov 2016
              fileID = fopen( fullfile(filesFolder, nameOfTextFiles{i}));
1 commentaire
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Data Type Conversion dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!