histcounts
히스토그램 Bin 도수
구문
설명
는 N
= histcounts(C
,Categories
)C
에서 Categories
로 지정된 범주의 서브셋과 일치하는 값을 가지는 요소의 개수만 계산합니다.
[
는 categorical형 배열에 대해 위에 열거된 구문에 사용 시 N
,Categories
] = histcounts(___)N
의 각 도수에 해당하는 범주도 반환합니다.
[___] = histcounts(___,
는 위에 열거된 구문에 나와 있는 입력 인수나 출력 인수 조합 중 하나를 사용하여 하나 이상의 Name,Value
)Name,Value
쌍의 인수로 지정된 추가적인 옵션을 사용합니다. 예를 들어, 숫자형 데이터에 대해 'BinWidth'
와 스칼라를 지정하여 Bin의 너비를 조정할 수 있습니다. categorical형 데이터의 경우, 'Normalization'
과 함께 'count'
, 'countdensity'
, 'probability'
, 'pdf'
, 'cumcount'
, 'cdf'
중 하나를 지정할 수 있습니다.
예제
Bin 도수와 Bin 경계값
100개의 난수 값을 Bin에 분포시킵니다. histcounts
는 데이터의 기본 분포를 나타내는 데 적합한 Bin 너비를 자동으로 선택합니다.
X = randn(100,1); [N,edges] = histcounts(X)
N = 1×7
2 17 28 32 16 3 2
edges = 1×8
-3 -2 -1 0 1 2 3 4
Bin 개수 지정
10개의 숫자를 균일한 간격의 6개 Bin에 분포시킵니다.
X = [2 3 5 7 11 13 17 19 23 29]; [N,edges] = histcounts(X,6)
N = 1×6
2 2 2 2 1 1
edges = 1×7
0 4.9000 9.8000 14.7000 19.6000 24.5000 29.4000
Bin 경계값 지정
1,000개의 난수를 Bin에 분포시킵니다. 벡터를 사용하여 Bin 경계값을 정의합니다. 여기서 첫 번째 요소는 첫 번째 Bin의 하한 경계값이고, 마지막 요소는 마지막 Bin의 상한 경계값입니다.
X = randn(1000,1); edges = [-5 -4 -2 -1 -0.5 0 0.5 1 2 4 5]; N = histcounts(X,edges)
N = 1×10
0 24 149 142 195 200 154 111 25 0
정규화된 Bin 도수
100보다 작은 모든 소수를 Bin에 분포시킵니다. 'Normalization'
을 'probability'
로 지정하여, sum(N)
이 1
이 되도록 Bin 도수를 정규화합니다. 즉, 각 Bin 도수는 한 관측값이 해당 Bin에 속할 확률을 나타냅니다.
X = primes(100); [N,edges] = histcounts(X, 'Normalization', 'probability')
N = 1×4
0.4000 0.2800 0.2800 0.0400
edges = 1×5
0 30 60 90 120
Bin 배치 확인
-5와 5 사이의 임의의 정수 100개를 Bin에 분포시키고 'BinMethod'
를 'integers'
로 지정하여 정수의 중앙에 위치하는 동일 너비 Bin을 사용합니다. histcounts
에 대한 세 번째 출력값을 지정하여 데이터의 Bin 인덱스를 나타내는 벡터를 반환합니다.
X = randi([-5,5],100,1); [N,edges,bin] = histcounts(X,'BinMethod','integers');
Bin 인덱스 벡터 bin
에서 숫자 3
이 나오는 횟수를 세어 세 번째 Bin의 Bin 도수를 구합니다. 결과는 N(3)
과 동일합니다.
count = nnz(bin==3)
count = 8
categorical형 Bin 도수
투표 항목을 나타내는 categorical형 벡터를 생성합니다. 벡터의 범주는 'yes'
, 'no'
, 'undecided'
입니다.
A = [0 0 1 1 1 0 0 0 0 NaN NaN 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1]; C = categorical(A,[1 0 NaN],{'yes','no','undecided'})
C = 1x27 categorical
Columns 1 through 9
no no yes yes yes no no no no
Columns 10 through 16
undecided undecided yes no no no yes
Columns 17 through 25
no yes no yes no no no yes yes
Columns 26 through 27
yes yes
각 범주에 포함되는 요소의 개수를 확인합니다.
[N,Categories] = histcounts(C)
N = 1×3
11 14 2
Categories = 1x3 cell
{'yes'} {'no'} {'undecided'}
입력 인수
X
— Bin 사이에 분포시킬 데이터
벡터 | 행렬 | 다차원 배열
Bin 사이에 분포시킬 데이터로, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다. X
가 벡터가 아닌 경우, histcounts
는 이를 단일 열 벡터 X(:)
으로 처리합니다.
histcounts
는 모든 NaN
값을 무시합니다. 마찬가지로, Bin 경계값이 Inf
또는 -Inf
를 명시적으로 Bin 경계값으로 지정하지 않는 한 histcounts
는 Inf
값과 -Inf
값을 무시합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| datetime
| duration
C
— categorical형 데이터
categorical형 배열
categorical형 데이터로, categorical형 배열로 지정됩니다. histcounts
는 정의되지 않은 categorical형 값을 무시합니다.
데이터형: categorical
nbins
— Bin 개수
양의 정수
Bin 개수로, 양의 정수로 지정됩니다. nbins
를 지정하지 않으면 histcounts
는 X
의 값을 기반으로 하여 사용할 Bin의 개수를 자동으로 계산합니다.
예: [N,edges] = histcounts(X,15)
는 15개의 Bin을 사용합니다.
edges
— Bin 경계값
벡터
Bin 경계값으로, 벡터로 지정됩니다. edges(1)
은 첫 번째 Bin의 하한 경계값이고 edges(end)
는 마지막 Bin의 상한 경계값입니다.
datetime형 데이터와 duration형 데이터의 경우, edges
는 단조 증가(Monotonically Increasing)하는 순서의 datetime형 벡터 또는 duration형 벡터여야 합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| datetime
| duration
Categories
— 도수에 포함되는 범주
모든 범주 (디폴트 값) | string형 벡터 | 문자형 벡터로 구성된 셀형 벡터 | pattern
스칼라 | categorical형 벡터
도수에 포함되는 범주로, string형 벡터, 문자형 벡터로 구성된 셀형 벡터, pattern
스칼라 또는 categorical형 벡터로 지정됩니다. 기본적으로 histcounts
는 categorical형 배열 C
의 각 범주에 대해 Bin을 사용합니다. 범주의 고유한 서브셋을 대신 지정하려면 Categories
를 사용하십시오.
예: h = histcounts(C,["Large","Small"])
은 범주 Large
와 Small
의 categorical형 데이터 개수만 계산합니다.
예: h = histcounts(C,"Y" + wildcardPattern)
은 모든 범주에서 이름이 문자 Y
로 시작하는 categorical형 데이터의 개수를 셉니다.
데이터형: string
| cell
| pattern
| categorical
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: [N,edges] = histcounts(X,'Normalization','probability')
는 sum(N)
이 1이 되도록 N
의 Bin 도수를 정규화합니다.
BinLimits
— Bin 제한
요소를 2개 가진 벡터
Bin 제한으로, 요소를 2개 가진 벡터 [bmin,bmax]
로 지정됩니다. 이 옵션은 bmin
과 bmax
(구간의 끝점 포함) 사이에 있는 X
의 값만 비닝합니다. 즉, X(X>=bmin & X<=bmax)
입니다.
이 옵션은 categorical형 데이터에 적용되지 않습니다.
예: [N,edges] = histcounts(X,'BinLimits',[1,10])
은 1
과 10
(구간의 끝점 포함) 사이에 있는 X
의 값만 비닝합니다.
BinMethod
— 비닝(Binning) 알고리즘
'auto'
(디폴트 값) | 'scott'
| 'fd'
| 'integers'
| 'sturges'
| 'sqrt'
| ...
비닝 알고리즘으로, 다음 표에 있는 값 중 하나로 지정됩니다.
값 | 설명 |
---|---|
| 디폴트 |
| 스콧의 법칙(Scott's Rule)은 데이터가 정규분포에 가까운 경우 가장 적합하며, 대부분의 다른 분포에도 적합합니다. 이 법칙은 Bin 너비로 |
| 프리드만-다이아코니스 법칙(Freedman-Diaconis Rule)은 데이터의 이상값에 덜 민감하며, 두꺼운 꼬리 분포의 데이터에 더 적합할 수 있습니다. 이 법칙은 Bin 너비로 |
| 정수 규칙은 각 정수에 대해 Bin을 생성하므로 정수 데이터에 유용합니다. 이 규칙은 Bin 너비로 1을 사용하며, 정수 사이의 중간 위치에 Bin 경계값을 배치합니다. 너무 많은 Bin을 생성하지 않도록 이 규칙을 사용하여 Bin 제한을 65536개로(216) 둘 수 있습니다. 데이터 범위가 65536보다 큰 경우 더 넓은 Bin이 대신 사용됩니다. 참고
|
| 스터지스의 법칙(Sturges' Rule)은 간단한 규칙으로, 단순하기 때문에 많이 사용됩니다. 이 법칙은 Bin 개수를 |
| 제곱근 규칙 또한 간단한 규칙으로, 타 소프트웨어 패키지에서 널리 사용됩니다. 이 법칙은 Bin 개수를 |
histcounts
가 항상 이러한 정확한 수식을 사용해 Bin 개수를 선택하지는 않습니다. Bin 경계값이 "적절한" 숫자가 되도록 Bin 개수가 약간 조정되는 경우도 있습니다.
datetime형 데이터의 경우 bin 방법은 다음 시간 단위 중 하나일 수 있습니다.
'second' | 'month' |
'minute' | 'quarter' |
'hour' | 'year' |
'day' | 'decade' |
'week' | 'century' |
duration형 데이터의 경우 bin 방법은 다음 시간 단위 중 하나일 수 있습니다.
'second' | 'day' |
'minute' | 'year' |
'hour' |
datetime형 또는 duration형 데이터로 BinMethod
를 지정하면 histcounts
는 최대 65,536개의 Bin(즉, 216)을 사용할 수 있습니다. 지정된 Bin 기간에 더 많은 Bin이 필요할 경우 histcounts
는 최대 Bin 개수에 해당하는 더 큰 Bin 너비를 사용합니다.
이 옵션은 categorical형 데이터에 적용되지 않습니다.
예: [N,edges] = histcounts(X,'BinMethod','integers')
는 정수의 중앙에 있는 Bin을 사용합니다.
BinWidth
— Bin 너비
스칼라
Bin 너비로, 스칼라로 지정됩니다. BinWidth
를 지정할 경우 histcounts
는 최대 65,536개의 Bin(즉, 216)을 사용할 수 있습니다. 지정된 Bin 너비에 더 많은 Bin이 필요할 경우 histcounts
는 최대 Bin 개수에 해당하는 더 큰 Bin 너비를 사용합니다.
datetime형 데이터와 duration형 데이터의 경우, 'BinWidth'
의 값은 duration형 스칼라 또는 calendarDuration형 스칼라일 수 있습니다.
이 옵션은 categorical형 데이터에 적용되지 않습니다.
예: [N,edges] = histcounts(X,'BinWidth',5)
는 너비가 5인 Bin을 사용합니다.
BinEdges
— Bin의 경계값
숫자형 벡터
Bin의 경계값으로, 숫자형 벡터로 지정됩니다. 첫 번째 벡터 요소는 첫 번째 Bin의 하한 경계값을 지정합니다. 마지막 요소는 마지막 Bin의 상한 경계값을 지정합니다. Bin 경계값을 지정하지 않으면 histcounts
가 자동으로 Bin 경계값의 위치를 지정합니다.
이 옵션은 categorical형 데이터에 적용되지 않습니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
Normalization
— 정규화 유형
'count'
(디폴트 값) | 'probability'
| 'countdensity'
| 'pdf'
| 'cumcount'
| 'cdf'
정규화 유형으로, 다음 표에 있는 값 중 하나로 지정됩니다. i
는 Bin이며, i에 대해 다음과 같습니다.
는 Bin의 값입니다.
는 Bin의 요소 개수입니다.
는 Bin의 너비입니다.
은 입력 데이터의 요소 개수입니다. 데이터에
NaN
,NaT
또는<undefined>
값이 포함되어 있거나 데이터의 일부가 Bin 제한을 벗어나는 경우 이 값은 비닝(Binning)된 데이터보다 클 수 있습니다.
값 | Bin 값 | 참고 |
---|---|---|
'count' (디폴트 값) |
|
|
'countdensity' |
|
참고
|
'cumcount' |
|
|
'probability' |
|
|
'pdf' |
|
참고
|
'cdf' |
|
|
예: [N,edges] = histcounts(X,'Normalization','pdf')
는 확률 밀도 함수 추정값을 사용하여 데이터를 비닝합니다.
NumBins
— Bin 개수
양의 정수
Bin 개수로, 양의 정수로 지정됩니다. NumBins
를 지정하지 않으면 histcounts
는 입력 데이터를 기반으로 하여 사용할 Bin의 개수를 자동으로 계산합니다.
이 옵션은 categorical형 데이터에 적용되지 않습니다.
출력 인수
N
— Bin 도수
행 벡터
Bin 도수로, 행 벡터로 반환됩니다.
edges
— Bin 경계값
벡터
Bin 경계값으로, 벡터로 반환됩니다. edges(1)
은 첫 번째 Bin의 하한 경계값이고 edges(end)
는 마지막 Bin의 상한 경계값입니다.
bin
— Bin 인덱스
배열
Bin 인덱스로, X
와 동일한 크기의 배열로 반환됩니다. bin
의 각 요소는 X
의 해당하는 요소가 어떤 번호의 Bin에 포함되는지를 설명합니다.
bin
에서 값 0
은 어느 Bin에도 속하지 않는 요소를 나타냅니다(예: NaN
값).
Categories
— 도수에 포함되는 범주
문자형 벡터로 구성된 셀형 벡터
도수에 포함되는 범주로, 문자형 벡터로 구성된 셀형 벡터로 반환됩니다. Categories
는 N
의 각 도수에 대응하는 범주를 C
에 포함합니다.
팁
histcounts
는discretize
함수와 유사하게 동작합니다. 각 Bin의 요소 개수를 구하려면histcounts
를 사용해야 합니다. 반면, 각 요소가 속해 있는 Bin을 찾으려면(요소 개수는 세지 않음)discretize
를 사용해야 합니다.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
사용법 관련 참고 및 제한 사항:
일부 입력 옵션이 지원되지 않습니다. 허용되는 옵션은 다음과 같습니다.
'BinWidth'
'BinLimits'
'Normalization'
'BinMethod'
—'auto'
Bin 방법과'scott'
Bin 방법은 동일합니다.'fd'
Bin 방법은 지원되지 않습니다.
Categories
입력 인수는 패턴 표현식을 지원하지 않습니다.
자세한 내용은 tall형 배열 항목을 참조하십시오.
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
코드 생성 시 이 함수에 대해 희소 행렬 입력값은 지원되지 않습니다.
코드 생성을 위해서는 Bin 경계값 비지정 시 가변 크기 배열을 사용해야 하고 동적 메모리를 할당해야 할 수 있습니다.
Categories
입력 인수는 패턴 표현식을 지원하지 않습니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
코드 생성 시 이 함수에 대해 희소 행렬 입력값은 지원되지 않습니다.
코드 생성을 위해서는 Bin 경계값 비지정 시 가변 크기 배열을 사용해야 하고 동적 메모리를 할당해야 할 수 있습니다.
Categories
입력 인수는 패턴 표현식을 지원하지 않습니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
사용법 관련 참고 및 제한 사항:
64비트 정수는 지원되지 않습니다.
자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2014b에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)