Пример #1
0
        /// <summary>
        /// 获取过滤粗差后的数据。循环过滤,直到所有粗差数据剔除。
        /// </summary>
        /// <param name="thresholdTimes">几倍中误差?</param>
        /// <returns></returns>
        public List <Double> Filter(double thresholdTimes)
        {
            this.ThresholdTimes = thresholdTimes;
            int resultCount = 0;

            List <Double> results = DoubleUtil.Filter(this.Residuals, LimitError);

            //已经完全满足条件
            if (results.Count == this.Residuals.Count <Double>())
            {
                return(results);
            }

            do
            {
                resultCount = results.Count;//上一次结果数量。

                GrossErrorFilter filter = new GrossErrorFilter(results);
                results = filter.Filter(thresholdTimes);
            } while (resultCount != results.Count);
            return(results);
        }