是否有任何命令可以在 MATLAB 中的向量中找到前 5 个值的平均值,然后是接下来的 5 个值,总共 1000 个值

Is there any command to find mean of first 5 values then next 5 values for a total of 1000 values in a vector in MATLAB

是否有任何命令可以从 MATLAB 中的向量中存在的总共 25 个值中找到前 5 个值的平均值,然后找到后 5 个值的平均值。如果数据集是 X。 如果有人能帮我提供一个代码,我可以在每 5 个值处得到平均值。

X=[4 5 6 7 2 5 7 4 2 6 7 3 2 1 5 7 8 3 4 6 8 4 2 6 8];

这是一种简单的方法。将向量重新排列到列上的矩阵循环中,并取每列中所有值的平均值。将结果存储在一个新的向量中。

X=[4 5 6 7 2 5 7 4 2 6 7 3 2 1 5 7 8 3 4 6 8 4 2 6 8];
Xr = reshape(X,5,5)
cols = size(Xr)(2)
avgs=zeros(1,cols)

for i= 1:cols
    avgs(i) = mean(Xr(:,i))
end

例如,您可以使用 reshape 重塑数组中的向量,然后应用 mean 函数:

M = mean(reshape(X, [5, numel(X)/5]),1);

或者干脆

M = mean(reshape(X, 5, []),1);

但是如评论中所述,还有许多其他方法。