java - 计算返回多个数据的标准差

标签 java standard-deviation

我正在尝试计算 wifi rssi 值的标准偏差。我扫描数据 30 秒,然后计算其标准偏差,如下所示:

        for (int length = 0; length < resultsData.size(); length++) {

            double sum = 0;
            double sd = 0;
            for (int l = 0; l < resultsData.get(length).values.size(); l++) {
                sum += resultsData.get(length).values.get(l);

            }

            double average = sum / resultsData.get(length).values.size();
            sd += (Math.pow((sum-average), 2));
            double SD = Math.sqrt(sd/resultsData.get(length).values.size()-1);


            positionData.addValue(resultsData.get(length).getRouter(), average);
            Log.v("SD", String.valueOf(SD));
        }

为什么结果不止一个?这是日志

V/SD: 178.67550857247704
    180.76127985287263
    258.6297016598155
    342.92879445720627
    351.79322190907664
    258.45588877709247
    358.5719004995616
    369.1744470855485
    313.72831287322157
    371.78163032237256
V/SD: 273.05616515593147
    216.67267940374947
    288.8982519850198

最佳答案

您似乎在问为什么它多次打印到日志?如果是这样,我想这是因为 Log.v("SD", String.valueOf(SD)); 位于第一个 for 循环内部。如果您希望所有内容都完成运行,然后在最后运行一次日志语句,请将其移到 for 循环 之外。希望这有帮助!

关于java - 计算返回多个数据的标准差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57959494/

相关文章:

java - 在我的代码中需要更改哪些内容来计算样本标准差而不是总体标准差?

java - JDBC 连接打开还是关闭?

java - 如何设置 Eclipse 观察点以在对象/基元更改时激活?

php - MySQL:表内的标准偏差平均值

java - 蒙特卡罗标准差方程

python - 在 pandas 和 standalone 中使用时的不同结果 np.std()

java - 事务系统中未正确显示线程的名称

java - 方法不能应用于给定类型

java - 未处理的异常编译错误 : ClassNotFoundException

python - 如何区分 Pandas 中除一列之外的两个数据框?