Extracting the daily time series from a text file to a single column
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Shahram Sahraei
am 23 Jul. 2019
Kommentiert: Shahram Sahraei
am 24 Jul. 2019
Dear Matlab users,
I have a text file (attached here) containing daily time series from 2013 to 2019 and I want to take out the daily data points and save it in a column vector in chronological order. I would be really grateful of your help in this regard.
Best,
Shahram
2 Kommentare
Akzeptierte Antwort
David Wilson
am 24 Jul. 2019
A quick hack is:
fname = 'D59.txt'
Flow = [];
fid=fopen(fname);
Yr = 2012;
R = [];
while 1
tline = fgetl(fid);
if ~ischar(tline), break, end
s = strtrim(tline);
disp(s)
if strncmp(s,'Day',3)
disp(s)
Yr = Yr+1;
X = [];
i=1;
while i < 32
s = deblank(fgetl(fid));
if isempty(s)
s = deblank(fgetl(fid));
end
%disp(s);
x = str2num(s); disp(x)
n = length(x);
if n == 8
x = [x(1:2), NaN, x(3), NaN, x(4), NaN, x(5:6), NaN, x(7), NaN x(8)];
elseif n == 12
x = [x(1:2), NaN, x(3:end)];
end
X = [X;x];
i=i+1;
end % for
Rdat = X(:,[2:end]);
r = Rdat(:);
r(find(isnan(r)))=[]; % drop bad days (leap year?)
R = [R; r];
end
end
fclose(fid);
plot(R)
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Data Import and Export 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!