は、我々は、データセットは、この値が含まれていると仮定:
data = [5 5 4 2 5 8 8 5 8 4 ];
あなたがmode
を述べたように、最も頻度の高い項目を見つけるために最善の方法です。 しかし、最も頻繁にi番目のアイテムを見つけるには、各エレメントの繰り返し数を示すデータのhistogram
を調べます。 Matlab の 関数は、ヒストグラムを計算するための関数です。 hist
の最初の引数はデータであり、それらは、この例におけるように、第2引数は、要素の一意の値を[2 4 5 8〕要素
の
unqiue値
unique_val = unique(data);
2 4 5 8
計算ヒストグラム
[count val] = hist(data, unique_val);
ヒストグラムをプロットすると、
hist(data, unique_val);
ので、我々は、このような姿を持っている:....
_
_ _
_ _ _
_ _ _ _
2 4 5 8
は、視覚的に我々は5が最も頻繁項目及び8は、2番目に多い項目である第一であることがわかり
をしかし、数値的に、我々はソートできる項目を見つけるために、
_
_ _
_ _ _
_ _ _ _
5 8 4 2
そう5は第8我々はカウントとval連結MATLABで第....
である:降順のヒストグラムは、図を取得しますas freq
freq = [count; val].';
次に、最初の列countに基づいてfreqをソートします。 (マイナス記号は、ソートし、1を下降するためのものであるが、最初の列のためのものである):
out = sortrows(freq , -1)
次いでout(i,2)
は、i番目の最も頻度の高い項目です。これにリードを説明したもののすべて要するに :
%find count of data
[count val] = hist(data(:,1),unique(data(:,1)));
freq = [count; val].';
%sort counts descendingly
out = sortrows(freq,-1);
今out(i,2)
は、i番目のあなたは、あなたのデータ配列にユニークな値のためのビンカウントを生成するaccumarray
とunique
とsort
を最も頻繁要素
あなたのデータの範囲は何ですか? – beaker
私は一般的な質問としてこれを求めています。私の特定のケースでは、データはかなり大きい(約6000万行)。しかし、この質問の目的とは無関係です。それとも? – Kristada673
'histcounts'またはその親戚の1つを使用する予定がある場合は意味があります。そして、配列のサイズではなく、値の範囲について質問していました。 – beaker