Read text file efficiently
Ältere Kommentare anzeigen
Hi all,
Does anybody has an idea how to efficiently read a *.txt-file in following format:
1/ 2/2019 01:30 -1.59 0.39 253
1/ 2/2019 01:45 -1.78 0.35 250
1/ 2/2019 02:00 -1.94 0.31 246
1/ 2/2019 02:15 -2.07 0.26 240
I would like to have 8 columns (day, month, year,hour, minute, param1, param2, param3).
The file also has some headers btw.
Like to hear your advise!
2 Kommentare
Stephen23
am 24 Jan. 2019
Image Analyst
am 25 Jan. 2019
Don't forget to attach your text file again, if you still need help.
There are lots of input options, like importdata(), textscan(), etc. if readtable() doesn't work.
Antworten (2)
Walter Roberson
am 25 Jan. 2019
fid = fopen('YourFile.txt', 'rt');
data = cell2mat( textscan(fid, '%f/%f/%f %f:%f %f %f %f', 'collectoutput', true);
fclose(fid);
3 Kommentare
Walter Roberson
am 26 Jan. 2019
filename = 'test.txt';
fid = fopen(filename, 'rt');
location_cell = textscan(fid, 'Location: %f° %f'' %f" %c %f° %f'' %f" %c%*[^\n]', 1, 'Headerlines', 1);
data = cell2mat( textscan(fid, '%f/%f/%f %f:%f %f %f %f', 'collectoutput', true, 'Headerlines', 6) );
fclose(fid);
lat = location_cell{1} + location_cell{2}/60 + location_cell{3}/3600;
if strcmpi(location_cell{4}, 's'); lat = -lat; end
long = location_cell{5} + location_cell{6}/60 + location_cell{7}/3600;
if strcmpi(location_cell{8}, 'w'); long = -long; end
%outputs: lat, long, data
Mjan88
am 27 Jan. 2019
Walter Roberson
am 27 Jan. 2019
You could try reducing HeaderLines to 4 on the second textscan. But I tested on your supplied file and the output looked fine to me.
Mjan88
am 26 Jan. 2019
0 Stimmen
Kategorien
Mehr zu Text Data Preparation finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!