2014-03-12 81 views
-2

我很久没有使用Matlab了,现在我正试图重新进入它。我的问题如下:在Matlab中过滤出数组/元素中的元素

我想滤除矢量中的元素,例如绝对值大于平均值+数据集标准偏差的两倍。然后我计算剩余系列的标准偏差并再次过滤。我想重复这个过程,直到没有其他元素需要被滤除。

我已经完成了第一过滤这样的:

indices = find(abs(x) > mean(x) + 2*std(x)); 
x(indices) = []; 

但我不太知道如何让while循环后正确的,已经忘了很多关于Matlab的索引。

+0

欢迎堆栈溢出。你有什么困难?发布您的代码并询问更具体的问题。这样,你很可能会得到答案 –

回答

0

也许这样的事情...

indices = find(abs(x) > mean(x) + 2*std(x));  
while any(indices) 
    x(indices) = []; 
    indices = find(abs(x) > mean(x) + 2*std(x));  
end