将小时数据转换为许多不同excel文件的日常数据
我是MATLAB新手,对于为我的研究做些什么,真的很失落。 我一直在下载并组织每小时的水质数据,为许多不同国家的Excel,并组织他们一年。 我已经为他们做了数据准备,以确保没有零/一年中的每一天(DOY)有24个值,但时间序列图太吵了,所以我的顾问希望我得到每日平均值。 所有网站的年度数据在可用天数方面都有所不同,有时由于没有录音而丢失整个月份。 所以我的问题是,我怎样才能开发一个代码给我每天的平均价值链接到一个特定的DOY,我可以适用于许多不同的Excel表。 数据如下所示:
和文件保存像CA1_2012(加利福尼亚州从2012年1小时的数据)
我知道有很多关于这个话题,但我一直在尝试一切,我不能得到一个有效的代码! 谢谢!
你可以根据matlab中第一列中使用accumarray
值的值得到第二列的总和;
[m,~,n] = unique(data(:,1)); sumdata = [m, accumarray(n,data(:,2))];
意思是我会build议grpstats
:
avgdata = grpstats(data, DOY, {'mean'});
或者像@gnovicebuild议的那样:
avgdata = accumarray(DOY, data, [], @mean);
你也可以通过使用Excel中的Pivot Table和DOY
组数据来得到你想要的结果,并在表中得到它们的平均值。 (不需要编码)。