Extracting the daily time series from a text file to a single column
조회 수: 2 (최근 30일)
이전 댓글 표시
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
채택된 답변
David Wilson
2019년 7월 24일
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)
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!