我不确定 SO 是否适合问这个问题,如果不是,我会删除这个问题并在其他地方尝试。说我正在尝试执行以下操作:
我有一个List<double>
并且想要将其值非常接近(在本例中为 0.75)的值替换为单个值,表示替换值的平均值。不应修改孤立或单独的值。替换的块也不能超过 5。
从 0、5、10.. 计算每个区间的平均值不会提供预期的结果。
LINQ 的强大功能多次让我感到惊讶,如果有人能指导我创建这个小方法,我会很高兴。
我的想法是首先找到每个最接近的值,计算距离,如果距离小于最小值(在本例中为 0.75),然后将这些值分配给同一个块。
当所有值都分配给它们的块时,运行第二个循环,将每个块(用一个值或多个值)替换为其平均值。
我在这种方法中遇到的问题是分配“块”:如果几个值在一起,我需要检查评估值是否包含在另一个块中,如果是,新值也应该在那个块中. 我不知道这是否是正确的做法,或者我把它复杂化了。
编辑:预期结果:
虽然您看到两个轴只使用了一个,但列表是一维的,我应该只绘制 X 轴。
所表示的线条的长度无关紧要。它只是在值所在的轴上标记。