Help in averaging climate data
显示 更早的评论
I am a novice in matlab and looking for help with calculating average monthly data from hourly data.
I have the data for full year in one file and have multiple txt files for different years. Column 1 is year, column 2 is month of year (1 to 12), column 3 is day of month and column 4 is hour of day (0 to 23). Looking forward to some guidance on how to do this.
Thanks in advance
5 个评论
Kye Taylor
2013-6-6
Have you imported the data into MATLAB? I.e. do you have the data stored in a N-by-4 dimensional matrix yet?
Kye Taylor
2013-6-6
So, does a row of the data looks like
[1990, 2, 28, 23] % for 11pm Feb 28 1990
Where is the climate data? Is that stored in another column? or a separate vector?
Sam
2013-6-6
Kye Taylor
2013-6-6
So, which columns of the 13 are the four you describe above, and which one is the climate data?
Sam
2013-6-6
回答(2 个)
Roger Stafford
2013-6-6
I'll suppose you have the climate data in column five of an array, A, with the year, month, day, and hour in its columns 1, 2, 3, and 4, respectively.
[u,~,ix] = unique(A(:,1:2),'rows');
B = [u,accumarray(ix,A(:,5))./accumarray(ix,1)];
5 个评论
Roger Stafford
2013-6-6
It should produce a row for every year-month combination, not just for 12 months.
If you can fully(!) describe the "missing value" situation, perhaps a solution could be found. As things stand, I can only guess at what you mean.
Sam
2013-6-6
Roger Stafford
2013-6-6
You could initially remove all rows with the "999.9" data values:
A = A(A(:,5)~=999.9,:);
However, it might be better to allow some tolerance for rounding differences:
A = A(abs(A(:,5)-999.9)<100*eps(999.9),:);
Noor Mohd Safar
2015-7-14
Thank you guys.
类别
在 帮助中心 和 File Exchange 中查找有关 Climate Science and Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!