【发布时间】:2017-01-30 23:21:28
【问题描述】:
我有一个数组(大小为 2958 x 1)。我想从开始平均每五个单独的元素并将结果存储到一个新数组中。例如:
arr = (1:10).'; % for this array
avg = [3; 8]; % this should be the result
我该怎么做?
【问题讨论】:
-
你的意思是运行平均值吗?即第一个结果是数据的平均值(1:5),第二个是数据的平均值(2:6),或者是第二个结果的平均值数据(6:10)?
-
我应该在我的上一条评论中说,如果是第一种情况,请查看uk.mathworks.com/help/matlab/ref/filter.html,这是第一个工作示例。如果是第二个,那么我会建议像
mean(reshape(data,[],5),2);这样的东西,但数据的长度必须是 5 的倍数才能起作用。 -
@Dave Yes..第一个结果是 (1:5) 的平均值,第二个结果是 (6:10)。是的,数据的长度应该是 5 的倍数,但它的长度不是 5 的倍数,那么剩余的点(例如,在这种情况下,2985 中剩余 3 个点)可以按原样附加到结果数组中。
-
tsmovavg(金融工具箱)
标签: matlab vector moving-average