Extracting the daily time series from a text file to a single column
1 view (last 30 days)
Show older comments
Shahram Sahraei
on 23 Jul 2019
Commented: Shahram Sahraei
on 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 Comments
Accepted Answer
David Wilson
on 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)
More Answers (0)
See Also
Categories
Find more on Data Import and Export in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!