histcounts2
二変量ヒストグラムのビンのカウント数
構文
説明
[ は、前述の任意の構文について名前と値の引数を 1 つ以上使用して、追加のパラメーターを指定します。たとえば、N,Xedges,Yedges] = histcounts2(___,Name,Value)BinWidth を 2 要素ベクトルとして指定して、各次元のビンの幅を調整します。
例
100 組の乱数ペアをビンに分配します。histcounts2 は自動的に、データの基となる分布が明らかになる適切なビンの幅を選択します。
x = randn(100,1); y = randn(100,1); [N,Xedges,Yedges] = histcounts2(x,y)
N = 7×6
0 0 0 2 0 0
1 2 10 4 0 0
1 4 9 9 5 0
1 4 10 11 5 1
1 4 6 3 1 1
0 0 1 2 0 0
0 0 1 0 1 0
Xedges = 1×8
-3 -2 -1 0 1 2 3 4
Yedges = 1×7
-3 -2 -1 0 1 2 3
10 組の数値のペアを 12 個のビンに分配します。ビンを x 次元に 3 個、y 次元に 4 個指定します。
x = [1 1 2 3 2 2 1 1 2 3]; y = [5 6 3 8 9 1 2 7 5 1]; nbins = [3 4]; [N,Xedges,Yedges] = histcounts2(x,y,nbins)
N = 3×4
1 0 2 1
1 1 1 1
1 0 0 1
Xedges = 1×4
0.6000 1.4000 2.2000 3.0000
Yedges = 1×5
0 2.3000 4.6000 6.9000 9.2000
1,000 組の乱数ペアをビンに分配します。x 次元と y 次元に 1 つずつ、計 2 つのベクトルでビンのエッジを定義します。各ベクトルの最初の要素は最初のビンの最初のエッジを指定し、最後の要素は最後のビンの最後のエッジを指定します。
x = randn(1000,1); y = randn(1000,1); Xedges = -5:5; Yedges = [-5 -4 -2 -1 -0.5 0 0.5 1 2 4 5]; N = histcounts2(x,y,Xedges,Yedges)
N = 10×10
0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 0 0 0
0 0 5 5 3 5 1 2 0 0
0 2 19 23 29 25 26 20 5 0
0 10 36 51 59 71 54 46 10 0
0 7 43 46 79 64 60 46 9 0
0 3 12 18 21 23 19 9 6 0
0 0 5 3 2 8 2 2 0 0
0 0 0 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1,000 組の乱数ペアをビンに分配します。Normalization を 'probability' に指定して、sum(N(:)) が 1 になるようにビンのカウント数を正規化します。つまり、それぞれのビンのカウント数は、観測値がそのビンに入る確率を表します。
x = randn(1000,1); y = randn(1000,1); [N,Xedges,Yedges] = histcounts2(x,y,6,'Normalization','probability')
N = 6×6
0 0 0.0020 0.0020 0 0
0 0.0110 0.0320 0.0260 0.0070 0.0010
0.0010 0.0260 0.1410 0.1750 0.0430 0.0060
0 0.0360 0.1620 0.1940 0.0370 0.0040
0 0.0040 0.0300 0.0370 0.0100 0.0010
0 0.0030 0.0040 0.0040 0.0010 0
Xedges = 1×7
-4.0000 -2.7000 -1.4000 -0.1000 1.2000 2.5000 3.8000
Yedges = 1×7
-4.0000 -2.7000 -1.4000 -0.1000 1.2000 2.5000 3.8000
-10 ~ 10 の範囲にある 1,000 組の乱数の整数ペアをビンに分配します。BinMethod を 'integers' に指定して、整数を中心とする単位幅のビンを使用します。histcounts2 に出力を 5 つ指定して、データのビン配置を表すベクトルを返します。
x = randi([-10,10],1000,1); y = randi([-10,10],1000,1); [N,Xedges,Yedges,binX,binY] = histcounts2(x,y,'BinMethod','integers');
値 (x(3),y(3)) が分配されるビンを求めます。
[x(3),y(3)]
ans = 1×2
-8 10
bin = [binX(3) binY(3)]
bin = 1×2
3 21
入力引数
ビンに分散させるデータ。ベクトル、行列または多次元配列の個別の引数として指定します。X と Y は同じサイズでなければなりません。
X および Y の対応する要素は、2 次元データ点の x 座標および y 座標 [X(k),Y(k)] を指定します。X と Y は異なるデータ型にすることができます。
histcounts2 はすべての NaN 値を無視します。同様にビンのエッジとして明示的に Inf または -Inf を指定しない限り、histcounts2 は Inf 値および -Inf 値を無視します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
各次元のビンの数。正のスカラー整数、あるいは正の整数の 2 要素ベクトルとして指定します。
nbinsがスカラーの場合、histcounts2は各次元でその数のビンを使用します。nbinsがベクトルの場合、最初の要素は x 次元のビンの数を指定し、2 番目の要素は y 次元のビンの数を指定します。
nbins を指定しない場合、histcounts2 は X と Y の値に基づいて使用するビンの数を自動的に計算します。
nbins を BinMethod または BinWidth と一緒に指定した場合、histcounts2 は最後のパラメーターのみに従います。
例: [N,Xedges,Yedges] = は histcounts2(X,Y,15)x 次元と y 次元で 15 個のビンを使用します。
例: [N,Xedges,Yedges] = は histcounts2(X,Y,[15 20])x 次元で 15 個のビン、y 次元で 20 個のビンを使用します。
x 次元のビンのエッジ。ベクトルとして指定します。最初の要素は、x 次元の最初のビンの先頭のエッジを指定します。最後の要素は、x 次元の最後のビンの後方のエッジを指定します。後方のエッジは最後のビンにのみ含まれます。
XedgesとYedgesをBinMethod、BinWidth、またはNumBinsと一緒に指定した場合、histcounts2はビンのエッジのみに従い、ビンのエッジは最後に指定する必要があります。XedgesをXBinLimitsと一緒に指定した場合、histcounts2はXedgesのみに従い、Xedgesは最後に指定する必要があります。
y 次元のビンのエッジ。ベクトルとして指定します。最初の要素は、y 次元の最初のビンの先頭のエッジを指定します。最後の要素は、y 次元の最後のビンの後方のエッジを指定します。後方のエッジは最後のビンにのみ含まれます。
YedgesとXedgesをBinMethod、BinWidth、またはNumBinsと一緒に指定した場合、histcounts2はビンのエッジのみに従い、ビンのエッジは最後に指定する必要があります。YedgesをYBinLimitsと一緒に指定した場合、histcounts2はYedgesのみに従い、Yedgesは最後に指定する必要があります。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。
例: [N,Xedges,Yedges] = histcounts2(X,Y,'Normalization','probability') は、sum(N) が 1 になるようにビンのカウント数を N で正規化します。
各次元のビンの幅。正の値の 2 要素ベクトルとして指定します。最初の要素は x 次元のビンの幅を指定し、2 番目の要素は y 次元のビンの幅を指定します。
BinWidth を指定した場合、histcounts2 は各次元で最大 1024 (210) 個のビンを使用できます。指定したビンの幅によってさらに多くのビンが必要となる場合、histcounts2 はビンの最大数に対応する、より大きなビンの幅を使用します。
BinWidth を BinMethod または NumBins と一緒に指定した場合、histcounts2 は最後のパラメーターのみに従います。
例: は histcounts2(X,Y,'BinWidth',[5 10])x 次元のサイズが 5、y 次元のサイズが 10 のビンを使用します。
x 次元のビンの範囲。2 要素ベクトル [xbmin,xbmax] として指定します。最初の要素は、x 次元の最初のビンのエッジを示します。2 番目の要素は、x 次元の最後のビンのエッジを示します。
このオプションを使用すると、ビンの範囲 X>=xbmin & X<=xbmax に含まれるデータのみがビンに入れられます。
y 次元のビンの範囲。2 要素ベクトル [ybmin,ybmax] として指定します。最初の要素は、y 次元の最初のビンのエッジを示します。2 番目の要素は、y 次元の最後のビンのエッジを示します。
このオプションを使用すると、ビンの範囲 Y>=ybmin & Y<=ybmax に含まれるデータのみがビンに入れられます。
ビン化アルゴリズム。次の表のいずれかの値を指定します。
| 値 | 説明 |
|---|---|
'auto' | 既定値の |
'scott' | スコットの法則はデータが正規分布に近い場合に最適です。この規則は他の多くの分布にも適しています。ビンのサイズとして |
'fd' | Freedman-Diaconis の法則は、データの外れ値の影響を受けにくく、裾が大きい分布をもつデータにより適しています。ビンのサイズとして |
'integers' | 整数ルールは整数のペアを中心にしてビンを作成するので、整数データの場合に便利です。各次元に幅が 1 のビンを使用し、ビンのエッジを整数の中間に設定します。 誤って多すぎるビンを作成しないように、このルールを使用して作成するビンを 1024 (210) 個以下に制限できます。いずれかの次元のデータの範囲が 1024 よりも大きい場合、整数ルールは代わりに幅の広いビンを使用します。 |
histcounts2は、これらの式を厳密に使用するのではなく、ビンのエッジが "きりのよい" 数字になるように、ビンの数をわずかに調整します。NumBins、XBinEdges、YBinEdges、BinWidth、XBinLimits、またはYBinLimitsプロパティを設定した場合、BinMethodは'manual'に設定されます。BinMethodをBinWidthまたはNumBinsと一緒に指定した場合、histcounts2は最後のパラメーターのみに従います。
例: は 2 次元ビンの中心を各整数ペアとします。histcounts2(X,Y,'BinMethod','integers')
正規化のタイプ。次の表のいずれかの値を指定します。各ビン i に対して次のようになります。
はビンの値です。
はビン内の要素数です。
はビンの面積で、ビンの幅 x と y を使用して計算されます。
は入力データ内の要素数です。データに欠損値が含まれる場合、または一部のデータがビンの範囲外にある場合、この値はビン化されたデータより大きくなることがあります。
| 値 | ビンの値 | メモ |
|---|---|---|
'count' (既定) |
|
|
'probability' |
|
|
'percentage' |
|
|
'countdensity' |
|
|
'cumcount' |
|
|
'pdf' |
|
|
'cdf' |
|
|
例: は、確率密度関数の推定値を使用してデータをビン化します。histcounts2(X,Y,'Normalization','pdf')
出力引数
ビンのカウント数。配列として返されます。
ビン化スキームでは、各ビンの先頭の x 次元と y 次元のエッジに加え、x 次元と y 次元の最後のビンに対する後方のエッジが含められます。

たとえば、(1,1) のビンは各次元の最初のエッジ上にある値を含み、右下の最後のビンはその任意のエッジ上にある値をすべて含みます。
x 次元のビンのエッジ。ベクトルとして返されます。最初の要素は、x 次元の最初のビンの先頭のエッジです。最後の要素は、x 次元の最後のビンの後方のエッジです。
y 次元のビンのエッジ。ベクトルとして返されます。最初の要素は、y 次元の最初のビンの先頭のエッジです。最後の要素は、y 次元の最後のビンの後方のエッジです。
x 次元のビン インデックス。X と同じサイズの配列として返されます。binX および binY の対応する要素は、X および Y の対応する値を含む番号付きビンを表します。binX または binY に値 0 が含まれる場合、これは要素がいずれのビンにも属さないことを示します (NaN 値など)。
たとえば、binX(1) および binY(1) は値 [X(1),Y(1)] のビンの位置を表します。
y 次元のビン インデックス。Y と同じサイズの配列として返されます。binX および binY の対応する要素は、X および Y の対応する値を含む番号付きビンを表します。binX または binY に値 0 が含まれる場合、これは要素がいずれのビンにも属さないことを示します (NaN 値など)。
たとえば、binX(1) および binY(1) は値 [X(1),Y(1)] のビンの位置を表します。
拡張機能
使用上の注意および制限:
コード生成では、この関数のスパース行列入力はサポートされません。
ビンのエッジを指定しない場合、コード生成で可変サイズ配列および動的メモリ割り当てが必要になることがあります。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2015b で導入名前と値の引数 Normalization を 'percentage' に指定すると、ヒストグラムの値をパーセンテージとして正規化することができます。
参考
histogram | histcounts | discretize | histogram2 | morebins | fewerbins
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)