是否有任何命令可以在 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);
但是如评论中所述,还有许多其他方法。
是否有任何命令可以从 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);
但是如评论中所述,还有许多其他方法。