Loop for reading and extracting data from a single line of multiple text files.
    5 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    James
 am 16 Sep. 2024
  
    
    
    
    
    Kommentiert: Star Strider
      
      
 am 17 Sep. 2024
            I have the following code that I would like to put into a loop to read multiple text files.
txt = fileread('Test01.txt');
  temppos = strfind(txt,'Ground Temperature:');
  endpos = strfind(txt, '°C');
    for k = 1:numel(temppos)
        section{k,:} = txt(temppos(k):endpos(k));
    end    for k = 1:numel(section)
        temp(k,:) = sscanf(section{k}, 'Ground Temperature: %f');
    end    Results = table(temp, 'VariableNames',{'Temp'});
    2 Kommentare
Akzeptierte Antwort
  Star Strider
      
      
 am 16 Sep. 2024
        
      Bearbeitet: Star Strider
      
      
 am 16 Sep. 2024
  
      I generally do something like this — 
files = dir('*.txt');
for k = 1:numel(files)
    txt = fileread(files(k).name);
    temppos = strfind(txt,'Ground Temperature:');
    endpos = strfind(txt, '°C');
    for k = 1:numel(temppos)
        section{k,:} = txt(temppos(k):endpos(k));
    end
    for k = 1:numel(section)
        temp(k,:) = sscanf(section{k}, 'Ground Temperature: %f');
    end
    Results{k} = table(temp, 'VariableNames',{'Temp'});
end
Results{:}
This assumes the files are already in your working directory and on your MATLAB search path.  
If that is not the situation in your application, you will need something like this: 
files = dir('C:\PathName\*.txt')
and then: 
filename{k} = fullfile('C:\PathName\',files(k).name)
text = fileread(filename{k});
or something similar.  It may be neecessary for you to experiment a bit, depending on your situation.  
EDIT — Corrected typographical errors.  
.
13 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Structures finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


