0

我在用实验数据过滤数组时遇到问题 - 数据是一个长数组(双精度)。这个数组的索引只是时间(秒),值可以是负数或正数。问题是有时实验数据非常错误(( - 这是由于我们的设备中的错误。这个错误值与其他数组值非常不同。例如前 100 秒值等于 +75 +(小增量值) 或 - 40 -( 小增量值),但是在 3 秒内的值为 +270 (这是我上面说过的错误)。如何从数组中清除这些值?平均值计数可能不是最好的方法,因为如果我从数组中取出每个值来求和,这个错误数据破坏了整个统计数据(由于它的“权重”很大)。我已经绘制了这个数据 - 图片很清楚但是..

4

1 回答 1

1

假设我们大多数时候都有正确的价值观。如果信号是永久的(增量较小),我们可以使用中值过滤数据:

delta = 1e-3;
a=[75 * ones(1,20) + rand(1,20) * delta, 270 * ones(1,3) + rand(1,3) * delta];
m = median(a);
filtered_a = a(m - 2 * delta < a & a < m + 2 * delta);
于 2013-11-15T08:50:05.917 回答