如何在Matlab中使用特定的方法来平均每月数据?

如何在Matlab中使用特定的方法来平均每月数据?,matlab,Matlab,我有下面的每月值向量(vectorA)。我将日期相关信息放在它旁边,以帮助说明任务,但我只处理向量本身 dates month_in_q vectorA 31/01/2020 1 10 29/02/2020 2 15 31/03/2020 3 6 30/04/2020 1 8 31/0

我有下面的每月值向量(vectorA)。我将日期相关信息放在它旁边,以帮助说明任务,但我只处理向量本身

dates         month_in_q   vectorA          
31/01/2020       1           10          
29/02/2020       2           15            
31/03/2020       3           6 
30/04/2020       1           8
31/05/2020       2           4
30/06/2020       3           3
如何根据此算法创建新的矢量new

  • 每个季度的第一个月都是最初的第一个月
  • 在每个季度,第二个月是第一个月和第二个月的平均值
  • 在每个季度,第三个月是所有三个月的平均值
因此,我通过在循环中操纵原始向量,得到下面的新向量,给定上面的重现模式

dates         month_in_q   vectorA   vectorNEW       
31/01/2020       1           10          10
29/02/2020       2           15          AVG(10+15)  
31/03/2020       3           6           AVG(10+15+6)
30/04/2020       1           8           8
31/05/2020       2           4           AVG(8+4)
30/06/2020       3           3           AVG(8+4+3)
...              ...        ...          ...   

mathworks网站上的用户dpb提供了一个优雅的解决方案

vectorNEW=reshape(cumsum(reshape(vectorA,3,[]))./[1:3].',[],1);
进一步资料如下