gpt4 book ai didi

matlab - Matlab中n个元素的分段平均

转载 作者:太空宇宙 更新时间:2023-11-03 20:28:04 24 4
gpt4 key购买 nike

我想在 Matlab 中对向量进行分段平均。矢量x看起来像这样:

x = 1:15;

分别是:

x = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]

我想求 n = 5 的平均值要素;因此,结果向量 y应该看起来像:

y = [1 1.5 2.5 3 4 5 6 7 8 9 10 11 12 13]

生成向量的代码y应该以某种方式像这样工作:

y = [
mean ([1])
mean ([1,2])
mean ([1,2,3])
mean ([1,2,3,4])
mean ([1,2,3,4,5])
mean ([2,3,4,5,6])
mean ([3,4,5,6,7])
mean ([4,5,6,7,8])
mean ([5,6,7,8,9])
mean ([6,7,8,9,10])
mean ([7,8,9,10,11])
mean ([8,9,10,11,12])
mean ([9,10,11,12,13])
mean ([10,11,12,13,14])
mean ([11,12,13,14,15])
]

对于 n < 5元素,程序应该平均超过 n元素。例如,如果只有 3 个元素可用,则代码应平均前 3 个元素。对于 n > 5元素,程序应该对最后 5 个元素进行平均。

感谢任何帮助!

最佳答案

对于此类滑动求和或平均操作,一种非常有效的矢量化方法是使用 1D 卷积 conv , 像这样 -

n = 5
sums = conv(x,ones(1,n))
out = sums(1:numel(x))./[1:n n*ones(1,numel(x)-n)]

关于matlab - Matlab中n个元素的分段平均,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37756088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com