标签: matlab
我有一个非常长的列向量(20000长度)。在这20000个值的列表中,我想找到100个产生最低平均值的相邻值。我可以想象某种100长度的帧沿着向量移动,matlab计算所有可能的平均值然后返回最低值。
目标是 - 我想找到矢量中的最小值,但更喜欢找到最小的平均值(使用100作为采样帧)以排除找到低块随机噪声的可能性。
一个罗嗦的问题,但任何帮助表示赞赏。 谢谢, 克里斯
答案 0 :(得分:4)
我可以想象某种100长度的帧沿着向量移动,matlab计算所有可能的平均值
将conv与100个相等值的向量一起使用。
conv
然后返回最低的
使用min。它的两个输出给出了最小平均值和矢量中那些值开始的索引。
min
vector = rand(1,20000); N = 100; avg = conv(vector, ones(N,1), 'valid') / N; %// length is length(vector)-N+1 [lowestValue, lowestIndex] = min(avg);