Loop for reading and extracting data from a single line of multiple text files.

2 次查看(过去 30 天)

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'});

采纳的回答

Star Strider
Star Strider 2024-9-16
编辑:Star Strider 2024-9-16
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{:}
ans = table
Temp ____ 29.3
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 个评论

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

标签

产品


版本

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by