0

Java でMatlab の trimmean() のような関数が必要ですが、車輪の再発明はしたくありません。

そのための準備ができている実装を知っている人はいますか? (はい、すぐに作成できることはわかっていますが、誰かがすでにコミュニティに貢献している場合は時間を無駄にしません。

いくつかの代替案を探しましたが、部分的なプレースホルダーの実装 ( thisまたはthisなど) しか見つかりませんでした。

どんな提案でも大歓迎です。最高のものは、私が遊ぶことができる Maven の依存関係です。

前もって感謝します!

4

2 に答える 2

0

アーカイブのためだけに、Coltで許容できる解決策を見つけました:

public static void trimmean(final double[] arr, final int percent) {
    if ( percent < 0 || 100 < percent ) {
        throw new IllegalArgumentException("Unexpected value: " + percent);
    }

    if ( 0 == arr.length ) {
        return Double.NaN;
    }

    final int n = arr.length;
    final int k = Math.round(n * ( percent / 100.0 ) / 2.0); // Check overflow
    final DoubleArrayList list = new DoubleArrayList( arr );
    list.sort();
    
    return Descriptive.winsorizedMean( list, Descriptive.mean( list ), k, k );
}
于 2012-04-17T09:16:28.073 に答える