我想要通过用两个相邻数据点的平均值替换超过每列标准偏差4倍的阈值的每个数据点来过滤加速(10240x31)数据。
首先,如果超过最大值,我想用零替换每个数据点。这是我的循环:
for w = 1:31
Sigma(w) = std(zacceleration(:,w));
zacceleration(zacceleration<(-4*Sigma(w))) = 0;
zacceleration(zacceleration>(4*Sigma(w))) = 0;
end
如果w只是一个数字,则该代码有效,例如:
w = 1;
但是当w改变每次迭代时,过滤后的数据只包含不超过最后一个数据集Sigma(31)的阈值的值。 所以,我想我会覆盖我的数据或类似的东西,但我似乎无法找到解决方案。
任何人都可以给我一个提示吗?
提前感谢您和最好的问候。
答案 0 :(得分:0)
我想我现在明白了。
Sigma = std(zacceleration);
for a = 1:10240;
for b = 1:31;
if zacceleration(a,b)<(-4*Sigma(b))
zacceleration(a,b) = 0;
end
if zacceleration(a,b)>(4*Sigma(b))
zacceleration(a,b) = 0;
end
end
end