Setsuna am :
Danke für diese praktischen Bash-Schnippsel. Sind ja doch Sachen die man immer wieder mal braucht.
Bezüglich des Medians: wo hast du deine Formel her? Wikipedia hat die etwas anders in Erinnerung:
x_((n+1)/2) wenn ungerade
x_((n+(n+1))/2) wenn gerade
Ich habe das Skript mal angepasst, sodass es die nach dieser Formel richtigen Ergebnisse liefert:
#!/bin/bash
#Calculate the median of the arguments
#Formula: Var(X)=x_(n/2)+x_((n+1)/2)    if n even
#                 Var(X)=x_((n+1)/2)                 else
if [[ $# -eq 0 ]];then
    echo "No arguments found. Exiting." >&2
    exit 1
fi
sorted_args=($(sort.pl $*))
n="$#"
if [[ $((n%2)) -eq 0 ]];then
    median=$(( ( \
       ${sorted_args[$((n/2-1))]} \
       + ${sorted_args[($((n/2)))]} \
    ) / 2))
else
    median=${sorted_args[$((n/2))]}
fi
echo $median
onli blogging am : Statistik in Ruby mit Statsample
Vorschau anzeigen