How to sum up numbers in time series from .txt file

조회 수: 3 (최근 30일)
pink flower
pink flower 2020년 4월 13일
댓글: pink flower 2020년 4월 15일
I have a .txt file with time series matrix like this:
2014,01,29,14,04,0.200
2014,01,29,14,50,0.000
2014,01,29,15,50,0.000
2014,01,29,16,50,0.000
2014,01,29,17,50,0.000
2014,01,29,18,50,0.000
2014,01,29,19,50,0.000
2014,01,29,20,50,0.000
2014,01,29,21,50,0.000
2014,01,29,22,50,0.000
2014,01,29,23,50,0.000
2014,01,30,0,50,0.000
2014,01,30,01,15,0.787
2014,01,30,01,50,0.000
2014,01,30,01,51,0.200
2014,01,30,02,49,0.589
2014,01,30,02,50,0.200
2014,01,30,03,03,0.393
2014,01,30,03,22,7.088
2014,01,30,03,33,6.101
2014,01,30,03,44,10.358
2014,01,30,03,50,2.952
2014,01,30,03,55,1.969
2014,01,30,04,02,0.982
2014,01,30,04,09,0.200
The columns show year, month, day, hour, minute and precipitation rate, respectively. I need hourly precipitation data. I want to get output like this in a .txt file:
2014,01,29,14,0.200
2014,01,29,15,0.000
2014,01,29,16,0.000
...
And I need daily precipitation data in a other .txt file:
2014,01,29,0.200
2014,01,30,31.819
...
Tks for help!!

채택된 답변

Peng Li
Peng Li 2020년 4월 13일
편집: Peng Li 2020년 4월 14일
Load it using readtable. And do a splitapply or rowfun.
tbl = readtable('test.txt', 'ReadVariableNames', 0);
tbl.Properties.VariableNames ...
= {'year', 'month', 'day', 'hour', 'minutes', 'precipationRate'};
[grp, hrTbl] = findgroups(tbl(:, {'year', 'month', 'day', 'hour'}));
hrTbl.preci = splitapply(@mean, tbl.(6), grp);
hrTbl.year = splitapply(@(x) x(1), tbl.(1), grp);
And writetable it.
writetable(hrTbl, writePath);
Similar for your month and yearly table.
  댓글 수: 8
Peng Li
Peng Li 2020년 4월 15일
Good to know the retime function. Powerful!
pink flower
pink flower 2020년 4월 15일
Very good!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Timetables에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by