次のようなデータセット(テスト用)があります。0.10.2 0.3 0.4 0.5 1.1 1.2 1.3 1.4 1.5 0.1 0.2 0.3 0.4 0.5ビン(ステップサイズ)で最小0.1から最大1.5までの頻度カウントを取得したい0.1です。Matlab、Octave、Origin、およびAWKスクリプトでテストしました。しかし、まったく違う結果になりました。
1.Matlab
data = [0.1 0.2 0.3 0.4 0.5 1.1 1.2 1.3 1.4 1.5 0.1 0.2 0.3 0.4 0.5];
edge = 0.1:0.1:1.5;
count = histc(data, edge);
結果は次のとおりです。
count = [2 4 0 2 2 0 0 0 0 0 1 1 1 1 1]
2.オクターブ
data = [0.1 0.2 0.3 0.4 0.5 1.1 1.2 1.3 1.4 1.5 0.1 0.2 0.3 0.4 0.5];
edge = 0.1:0.1:1.5;
count = histc(data, edge);
結果は次のとおりです。
count = [2 2 2 2 2 0 0 0 0 0 1 2 0 1 1]
3.起源
コマンド「周波数カウント」を使用して、、、を設定min=0.1
しmax=1.5
ますstep size=0.1.
結果は次のとおりです。
count = [2 4 0 2 2 0 0 0 0 0 2 1 1 1]
4. AWK
{...;count[data/0.1]++;} ...
結果は次のとおりです。
count = [2 4 0 2 2 0 0 0 0 0 2 0 2 0 1]
なぜこれらの異なる結果が得られるのですか?私は何か間違ったことをしているのですか、それとも「頻度カウント」の概念を誤解していますか?上記の結果はどれも正しくないと思います...どうしたらいいですか?