所以这就是我所拥有的:
index : [3;4;5;6;7;8;9]
我有一个与该索引相对应的向量:
inVector = [10;20;30;40;50;60;70;80;90]
我想要的是我得到了invector中每3行的平均值。因此,
outVector = mean(inVector[index - 2 : index]);
因此,outVector现在有[20;30;40;50;60;70;80];
答案 0 :(得分:1)
对于任意index
,您可以使用cumsum
:
N = 3;
aux = cumsum([0; inVector(:)]);
result = (aux(index+1)-aux(index-N+1))/N;
如果index
总是由连续索引组成,则使用conv
会更容易(因为移动平均值是带矩形窗口的卷积):
N = 3;
result = conv(inVector,ones(1,N)/N,'valid');