多列数据的聚合操作你是不是也经常头疼?Matlab里的uniqueaccumarray配合用,其实就能轻松搞定多列聚合,真的是被低估的组合。

不需要写复杂的循环逻辑,靠unique找出唯一组合,再用accumarray按需聚合,比如@sum@mean都能直接用。想聚合时间序列数据,比如从每小时合到每天,简直不要太方便。

聚合逻辑是这样的:除了一列,其他列都拿来确定“分组”,一列才是你要统计的值。比如你有年-月-日-数值四列,就能按年月日汇总数值,效率高,还挺灵活。

再牛一点的还有个扩展版accumSeasonTS.m,可以把数据按春分秋分那种“天文季节”来聚合,适合气候、水文之类的时序数据,真的是专业味儿一下就上来了。

函数调用也直接:

out = accumSeasonTS(data, @sum)

你要注意:data得是个r x c矩阵,函数fn要用@方式写。输出也是个r x c的格式,逻辑清晰,不绕弯。

,嗯,这套方法适合做一些时序类数据的日常聚合。如果你用Matlab做数据,尤其搞气象、金融、环境数据的,可以直接上手试试。