Main Content

histcounts2

이변량 히스토그램 Bin 도수

설명

예제

[N,Xedges,Yedges] = histcounts2(X,Y)X, Y의 값을 2차원 Bin으로 분할하고 각 차원의 Bin 도수와 Bin 경계값을 반환합니다. histcounts2 함수는 자동 비닝(Binning) 알고리즘을 사용합니다. 이 알고리즘은 X, Y에 있는 값의 범위를 포괄하고 분포의 기본 형태를 표시하도록 선택된, 균일한 Bin을 반환합니다.

예제

[N,Xedges,Yedges] = histcounts2(X,Y,nbins)는 각 차원에서 사용할 Bin 개수를 지정합니다.

예제

[N,Xedges,Yedges] = histcounts2(X,Y,Xedges,Yedges)X, YXedgesYedges로 지정된 Bin 경계값을 갖는 Bin으로 분할합니다.

예제

[N,Xedges,Yedges] = histcounts2(___,Name,Value)는 위에 열거된 구문에서 하나 이상의 이름-값 인수를 사용하여 추가적인 파라미터를 지정합니다. 예를 들어, 각 차원의 Bin 너비를 조정하려면 BinWidth를 요소를 2개 가진 벡터로 지정합니다.

예제

[N,Xedges,Yedges,binX,binY] = histcounts2(___)XY의 대응하는 요소에 대한 Bin 인덱스도 반환합니다.

예제

모두 축소

100개의 난수 쌍을 Bin에 분포시킵니다. histcounts2는 데이터의 기본 분포를 나타내는 데 적합한 Bin 너비를 자동으로 선택합니다.

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개의 Bin에 분포시킵니다. x 차원에 3개의 Bin을 지정하고 y 차원에 4개의 Bin을 지정합니다.

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개의 난수 쌍을 Bin에 분포시킵니다. x 차원과 y 차원에 각각 하나씩 두 개의 벡터를 사용하여 Bin 경계값을 정의합니다. 각 벡터의 첫 번째 요소는 첫 번째 Bin의 첫 번째 경계값이고, 마지막 요소는 마지막 Bin의 마지막 경계값입니다.

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개의 난수 쌍을 Bin에 분포시킵니다. Normalization'probability'로 지정하여, sum(N(:))1이 되도록 Bin 도수를 정규화합니다. 즉, 각 Bin 도수는 한 관측값이 해당 Bin에 속할 확률을 나타냅니다.

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개를 Bin에 분포시키고 BinMethod'integers'로 지정하여 정수의 중앙에 위치하는 동일 너비 Bin을 사용합니다. histcounts2에 대해 5개 출력값을 지정하여 데이터의 Bin 배치를 나타내는 벡터를 반환합니다.

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))이 어떤 Bin에 포함되는지 확인합니다.

[x(3),y(3)]
ans = 1×2

    -8    10

bin = [binX(3) binY(3)]
bin = 1×2

     3    21

입력 인수

모두 축소

Bin 사이에 분포시킬 데이터로, 벡터, 행렬, 다차원 배열 중 한 가지 형식의 개별 인수로 지정됩니다. XY는 크기가 동일해야 합니다.

XY의 대응하는 요소는 2차원 데이터 점의 x, y 좌표 [X(k),Y(k)]를 지정합니다. XY의 데이터형은 서로 다를 수 있습니다.

histcounts2는 모든 NaN 값을 무시합니다. 마찬가지로, Bin 경계값이 Inf 또는 -Inf를 명시적으로 Bin 경계값으로 지정하지 않는 한 histcounts2Inf 값과 -Inf 값을 무시합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

각 차원의 Bin 개수로, 양의 정수 스칼라 또는 양의 정수로 구성된 요소를 2개 가진 벡터로 지정됩니다.

  • nbins가 스칼라이면 histcounts2 함수는 각 차원에 포함된 개수만큼의 Bin을 사용합니다.

  • nbins가 벡터이면 첫 번째 요소는 x 차원의 Bin 개수를 지정하고, 두 번째 요소는 y 차원의 Bin 개수를 지정합니다.

nbins를 지정하지 않으면 histcounts2 함수는 XY의 값을 기반으로 하여 사용할 Bin의 개수를 자동으로 계산합니다.

nbinsBinMethod 또는 BinWidth와 함께 지정할 경우 histcounts2 함수는 마지막 파라미터만 적용합니다.

예: [N,Xedges,Yedges] = histcounts2(X,Y,15)x 차원과 y 차원에서 15개의 Bin을 사용합니다.

예: [N,Xedges,Yedges] = histcounts2(X,Y,[15 20])x 차원에서 15개의 Bin을 사용하고 y 차원에서 20개의 Bin을 사용합니다.

x 차원의 Bin 경계값으로, 벡터로 지정됩니다. 첫 번째 요소는 x 차원의 첫 번째 Bin의 앞쪽 경계값을 지정합니다. 마지막 요소는 x 차원의 마지막 Bin의 뒤쪽 경계값을 지정합니다. 뒤쪽 경계값은 마지막 Bin에 대해서만 포함됩니다.

  • XedgesYedgesBinMethod, BinWidth 또는 NumBins와 함께 지정할 경우 histcounts2 함수는 Bin 경계값만 적용하므로 Bin 경계값을 마지막에 지정해야 합니다.

  • XedgesXBinLimits와 함께 지정할 경우 histcounts2 함수는 Xedges만 적용하므로 Xedges를 마지막에 지정해야 합니다.

y 차원의 Bin 경계값으로, 벡터로 지정됩니다. 첫 번째 요소는 y 차원의 첫 번째 Bin의 앞쪽 경계값을 지정합니다. 마지막 요소는 y 차원의 마지막 Bin의 뒤쪽 경계값을 지정합니다. 뒤쪽 경계값은 마지막 Bin에 대해서만 포함됩니다.

  • YedgesXedgesBinMethod, BinWidth 또는 NumBins와 함께 지정할 경우 histcounts2 함수는 Bin 경계값만 적용하므로 Bin 경계값을 마지막에 지정해야 합니다.

  • YedgesYBinLimits와 함께 지정할 경우 histcounts2 함수는 Yedges만 적용하므로 Yedges를 마지막에 지정해야 합니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: [N,Xedges,Yedges] = histcounts2(X,Y,'Normalization','probability')sum(N)이 1이 되도록 N의 Bin 도수를 정규화합니다.

각 차원의 Bin 너비로, 양수 값으로 구성된 요소를 2개 가진 벡터로 지정됩니다. 첫 번째 요소는 x 차원의 Bin 너비를 지정하고, 두 번째 요소는 y 차원의 Bin 너비를 지정합니다.

BinWidth를 지정할 경우 histcounts2 함수는 각 차원에 최대 1024개의 Bin(210)을 사용할 수 있습니다. 지정된 Bin 너비에 더 많은 Bin이 필요할 경우 histcounts2 함수는 최대 Bin 개수에 해당하는 더 큰 Bin 너비를 사용합니다.

BinWidthBinMethod 또는 NumBins와 함께 지정할 경우 histcounts2 함수는 마지막 파라미터만 적용합니다.

예: histcounts2(X,Y,'BinWidth',[5 10])x 차원의 크기가 5이고 y 차원의 크기가 10인 Bin을 사용합니다.

x 차원의 Bin 제한으로, 요소를 2개 가진 벡터 [xbmin,xbmax]로 지정됩니다. 첫 번째 요소는 x 차원의 첫 번째 Bin 경계값을 나타냅니다. 두 번째 요소는 x 차원의 마지막 Bin 경계값을 나타냅니다.

이 옵션은 Bin 제한 값(X>=xbmin & X<=xbmax) 내에 있는 데이터만 비닝합니다.

y 차원의 Bin 제한으로, 요소를 2개 가진 벡터 [ybmin,ybmax]로 지정됩니다. 첫 번째 요소는 y 차원의 첫 번째 Bin 경계값을 나타냅니다. 두 번째 요소는 y 차원의 마지막 Bin 경계값을 나타냅니다.

이 옵션은 Bin 제한 값(Y>=ybmin & Y<=ybmax) 내에 있는 데이터만 비닝합니다.

비닝 알고리즘으로, 다음 표에 있는 값 중 하나로 지정됩니다.

설명
'auto'

디폴트 'auto' 알고리즘은 데이터 범위를 포괄하고 기본 분포의 형태를 표시할 수 있는 Bin 너비를 선택합니다.

'scott'

스콧의 법칙(Scott's Rule)은 데이터가 정규분포에 가까운 경우 가장 적합합니다. 이 법칙은 대부분의 다른 분포에도 적합합니다. 이 법칙은 Bin 크기로 [3.5*std(X(:))*numel(X)^(-1/4), 3.5*std(Y(:))*numel(Y)^(-1/4)]을 사용합니다.

'fd'

프리드만-다이아코니스 법칙(Freedman-Diaconis Rule)은 데이터의 이상값에 덜 민감하며, 두꺼운 꼬리 분포의 데이터에 더 적합할 수 있습니다. 이 법칙은 Bin 크기로 [2*iqr(X(:))*numel(X)^(-1/4), 2*iqr(Y(:))*numel(Y)^(-1/4)]을 사용합니다.

'integers'

정수 규칙은 정수 쌍의 중앙에 Bin을 생성하므로 정수 데이터에 유용합니다. 이 규칙은 각 차원에 대해 Bin 너비로 1을 사용하며, 정수 사이의 중간 위치에 Bin 경계값을 배치합니다.

잘못하여 너무 많은 Bin을 생성하지 않으려면 이 규칙을 사용하여 1024개의 Bin 제한(210)을 생성할 수 있습니다. 어느 한 차원이라도 데이터 범위가 1024보다 큰 경우 정수 규칙은 대신 더 넓은 Bin을 사용합니다.

  • histcounts2 함수는 이러한 식을 정확히 그대로 사용하는 대신 Bin 경계값이 "적절한" 숫자가 되도록 Bin 개수를 약간 조정합니다.

  • NumBins, XBinEdges, YBinEdges, BinWidth, XBinLimits 또는 YBinLimits 속성을 설정하면 BinMethod'manual'로 설정됩니다.

  • BinMethodBinWidth 또는 NumBins와 함께 지정할 경우 histcounts2 함수는 마지막 파라미터만 적용합니다.

예: histcounts2(X,Y,'BinMethod','integers')는 2차원 Bin의 중심을 각 정수 쌍에 둡니다.

정규화 유형으로, 다음 표에 있는 값 중 하나로 지정됩니다. i는 Bin이며, i에 대해 다음과 같습니다.

  • vi는 Bin의 값입니다.

  • ci는 Bin의 요소 개수입니다.

  • Ai=wxiwyi는 x와 y의 Bin 너비를 사용하여 계산되는 Bin의 면적입니다.

  • N은 입력 데이터의 요소 개수입니다. 데이터에 누락값이 포함되어 있거나 데이터의 일부가 Bin 제한을 벗어나는 경우 이 값은 비닝(Binning)된 데이터보다 클 수 있습니다.

Bin 값참고
'count'(디폴트 값)

vi=ci

  • 관측값의 도수 또는 빈도입니다.

  • 모든 Bin 값의 합은 최대 numel(X)numel(y)입니다. 일부 입력 데이터가 Bin에 포함되지 않는 경우에만 합이 이보다 작습니다.

'probability'

vi=ciN

  • 상대 확률입니다.

  • 입력 데이터에 있는 요소의 총 개수에 대한 개별 Bin 요소의 개수는 최대 1입니다.

'percentage'

vi=100*ciN

  • 상대 백분율입니다.

  • 각 Bin에 있는 요소의 백분율은 최대 100입니다.

'countdensity'

vi=ciAi

  • Bin의 면적을 기준으로 스케일링한 도수 또는 빈도입니다.

  • N(end,end)는 최대 numel(X)numel(Y)입니다.

'cumcount'

vi=j=1icj

  • 누적 도수, 즉 x 차원과 y 차원에서의 각 Bin과 이전의 모든 Bin의 관측값 개수입니다.

  • N(end,end)는 최대 numel(X)numel(Y)입니다.

'pdf'

vi=ciNAi

  • 확률 밀도 함수 추정값입니다.

  • 모든 Bin의 체적의 합은 최대 1입니다.

'cdf'

vi=j=1icjN

  • 누적 분포 함수 추정값입니다.

  • N(end,end)는 최대 1입니다.

예: histcounts2(X,Y,'Normalization','pdf')는 확률 밀도 함수의 추정값을 사용하여 데이터를 비닝합니다.

출력 인수

모두 축소

Bin 도수로, 배열로 반환됩니다.

비닝 방식에는 각 Bin의 x 차원 및 y 차원의 앞쪽 경계값뿐만 아니라 x 차원과 y 차원에 있는 마지막 Bin의 뒤쪽 경계값도 포함됩니다.

Sample matrix showing the bin inclusion scheme as well as the relative orientation of the bins to the x-axis and y-axis

예를 들어, (1,1) Bin에는 각 차원의 첫 번째 경계값에 해당하는 값이 포함되고, 오른쪽 맨 아래에 있는 마지막 Bin에는 양쪽 경계값에 해당하는 값이 포함됩니다.

x 차원의 Bin 경계값으로, 벡터로 반환됩니다. 첫 번째 요소는 x 차원의 첫 번째 Bin의 앞쪽 경계값입니다. 마지막 요소는 x 차원의 마지막 Bin의 뒤쪽 경계값입니다.

y 차원의 Bin 경계값으로, 벡터로 반환됩니다. 첫 번째 요소는 y 차원의 첫 번째 Bin의 앞쪽 경계값입니다. 마지막 요소는 y 차원의 마지막 Bin의 뒤쪽 경계값입니다.

x 차원의 Bin 인덱스로, X와 동일한 크기의 배열로 반환됩니다. binXbinY의 대응하는 요소는 XY의 대응값이 어떤 번호의 Bin에 포함되는지를 설명합니다. binX 또는 binY0 값은 Bin에 속하지 않는 요소를 나타냅니다(예: NaN 값).

예를 들어, binX(1)binY(1)은 값 [X(1),Y(1)]에 대한 Bin 배치를 설명합니다.

y 차원의 Bin 인덱스로, Y와 동일한 크기의 배열로 반환됩니다. binXbinY의 대응하는 요소는 XY의 대응값이 어떤 번호의 Bin에 포함되는지를 설명합니다. binX 또는 binY0 값은 Bin에 속하지 않는 요소를 나타냅니다(예: NaN 값).

예를 들어, binX(1)binY(1)은 값 [X(1),Y(1)]에 대한 Bin 배치를 설명합니다.

확장 기능

버전 내역

R2015b에 개발됨

모두 확장