Main Content

mode

배열에서 최빈값

설명

예제

M = mode(A)A의 샘플 최빈값, 즉 A에서 가장 자주 발생하는 값을 반환합니다. 발생 빈도가 같은 값이 여럿이면 mode는 그중 가장 작은 값을 반환합니다. 입력값이 복소수면, 그중 가장 작은 값이 정렬된 목록에서 첫 번째 값이 됩니다.

  • A가 벡터인 경우 mode(A)A의 최빈값을 반환합니다.

  • A가 비어 있지 않은 행렬인 경우 mode(A)A의 각 열 최빈값을 포함하는 행 벡터를 반환합니다.

  • A가 빈 0×0 행렬인 경우 mode(A)NaN을 반환합니다.

  • A가 다차원 배열인 경우 mode(A)는 크기가 1이 아닌 첫 번째 배열 차원에 있는 값을 벡터로 취급하고 최빈값으로 구성된 배열을 반환합니다. 이 차원의 크기는 1이 되고 다른 모든 차원의 크기는 변경되지 않습니다.

  • A가 테이블 또는 타임테이블인 경우 mode(A)는 각 변수의 최빈값을 포함하는 한 행 크기의 테이블을 반환합니다. (R2023a 이후)

예제

M = mode(A,'all')A의 모든 요소에 대한 최빈값을 구합니다. 이 구문은 MATLAB® 버전 R2018b 이상에서 유효합니다.

예제

M = mode(A,dim)은 차원 dim에서 요소의 최빈값을 반환합니다. 예를 들어, A가 행렬인 경우 mode(A,2)는 각 행의 최빈값이 포함된 열 벡터입니다.

예제

M = mode(A,vecdim)은 벡터 vecdim에 지정된 차원을 기준으로 최빈값을 구합니다. 예를 들어, A가 행렬인 경우 mode(A,[1 2])는 차원 1과 2로 정의된 배열 슬라이스에 행렬의 모든 요소가 포함되어 있으므로 A의 모든 요소에 대한 최빈값이 됩니다.

예제

또한 [M,F] = mode(___)는 앞에 열거된 구문의 입력 인수를 사용하여 빈도 배열 F를 반환합니다. FM과 크기가 같고, F의 각 요소는 M의 대응하는 요소의 발생 횟수를 나타냅니다.

예제

[M,F,C] = mode(___)MF와 크기가 같은 셀형 배열 C도 반환합니다. C의 각 요소는 M의 대응 요소와 빈도가 같은 모든 값이 정렬된 벡터입니다.

예제

모두 축소

3×4 행렬을 정의합니다.

A = [3 3 1 4; 0 0 1 1; 0 1 2 4]
A = 3×4

     3     3     1     4
     0     0     1     1
     0     1     2     4

각 열의 가장 자주 발생하는 값을 찾습니다.

M = mode(A)
M = 1×4

     0     0     1     4

3×4 행렬을 정의합니다.

A = [3 3 1 4; 0 0 1 1; 0 1 2 4]
A = 3×4

     3     3     1     4
     0     0     1     1
     0     1     2     4

각 행의 가장 자주 발생하는 값을 찾습니다.

M = mode(A,2)
M = 3×1

     3
     0
     0

110 사이의 정수로 구성된 1×3×4 배열을 만듭니다.

rng('default')
A = randi(10,[1,3,4])
A = 
A(:,:,1) =

     9    10     2


A(:,:,2) =

    10     7     1


A(:,:,3) =

     3     6    10


A(:,:,4) =

    10     2    10

두 번째 차원에 대한 이 3차원 배열의 가장 자주 발생하는 값을 구합니다.

M = mode(A)
M = 
M(:,:,1) =

     2


M(:,:,2) =

     1


M(:,:,3) =

     3


M(:,:,4) =

    10

작업은 두 번째 차원에 대한 가장 자주 발생하는 값을 찾아서 1×1×4 배열을 생성합니다. 두 번째 차원의 크기는 1로 줄어듭니다.

A의 첫 번째 차원에 대한 최빈값을 계산합니다.

M = mode(A,1);
isequal(A,M)
ans = logical
   1

첫 번째 차원의 크기가 1이므로 이것은 A와 동일한 배열을 반환합니다.

3차원 배열을 만들고 데이터의 각 페이지(행과 열)에 대한 최빈값을 구합니다.

A(:,:,1) = [2 4; 2 1];
A(:,:,2) = [6 2; 3 3];
A(:,:,3) = [4 4; 7 4];
M1 = mode(A,[1 2])
M1 = 
M1(:,:,1) =

     2


M1(:,:,2) =

     3


M1(:,:,3) =

     4

R2018b부터, 배열의 모든 차원에 대한 최빈값을 구하려면 벡터 차원 인수에 각 차원을 지정하거나 'all' 옵션을 사용할 수 있습니다.

M2 = mode(A,[1 2 3])
M2 = 4
Mall = mode(A,'all')
Mall = 4

3×4 행렬을 정의합니다.

A = [3 3 1 4; 0 0 1 1; 0 1 2 4]
A = 3×4

     3     3     1     4
     0     0     1     1
     0     1     2     4

각 열의 가장 자주 발생하는 값과, 그 발생 빈도를 구합니다.

[M,F] = mode(A)
M = 1×4

     0     0     1     4

F = 1×4

     2     1     2     2

M(1)이 첫 번째 열에서 두 번 발생하므로 F(1)2입니다.

3×4 행렬을 정의합니다.

A = [3 3 1 4; 0 0 1 1; 0 1 2 4]
A = 3×4

     3     3     1     4
     0     0     1     1
     0     1     2     4

각 행의 가장 자주 발생하는 값, 이 값이 발생하는 빈도, 해당 행에서 같은 빈도로 발생하는 값을 찾습니다.

[M,F,C] = mode(A,2)
M = 3×1

     3
     0
     0

F = 3×1

     2
     2
     1

C=3×1 cell array
    {[       3]}
    {2x1 double}
    {4x1 double}

두 번째 행에서 값 01F(2)의 빈도로 발생하므로 C{2}는 2×1 벡터 [0;1]입니다.

세 번째 행의 모든 값은 F(3)의 빈도로 발생하므로 C{3}은 4×1 벡터 [0;1;2;4]입니다.

16비트 부호 없는 정수로 구성된 1×4 벡터를 정의합니다.

rng('default')
A = randi(10,[1,4],'uint16')
A = 1x4 uint16 row vector

    9   10    2   10

가장 자주 발생하는 값과, 그 값의 발생 횟수를 구합니다.

[M,F] = mode(A)
M = uint16
    10
F = 2
class(M)
ans = 
'uint16'

M은 입력 A와 동일한 클래스입니다.

입력 인수

모두 축소

입력 배열로, 벡터, 행렬, 다차원 배열, 테이블 또는 타임테이블로 지정됩니다. A는 숫자형 배열, categorical형 배열, datetime형 배열, duration형 배열, 또는 이러한 데이터형의 변수를 갖는 테이블 또는 타임테이블일 수 있습니다.

입력 배열 A에서 NaN 또는 NaT(Not-a-Time) 값은 무시됩니다. categorical형 배열에서 정의되지 않은 값은 숫자형 배열에서 NaN과 유사합니다.

연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 차원을 지정하지 않을 경우 디폴트 값은 크기가 1보다 큰 첫 번째 배열 차원이 됩니다.

차원 dim은 길이가 1로 줄어드는 차원을 나타냅니다. size(M,dim)1이 되고, 다른 모든 차원의 크기는 변경되지 않습니다.

m×n 입력 행렬 A가 있다고 가정합니다.

  • mode(A,1)A의 각 열에서 요소들의 최빈값을 구하고, 1×n 행 벡터를 반환합니다.

    mode(A,1) column-wise operation

  • mode(A,2)A의 각 행에서 요소들의 최빈값을 구하고, m×1 열 벡터를 반환합니다.

    mode(A,2) row-wise operation

dimndims(A)보다 큰 경우 modeA를 반환합니다.

차원의 벡터로, 양의 정수로 구성된 벡터로 지정됩니다. 각 요소는 입력 배열의 차원을 나타냅니다. 지정된 연산 차원의 출력값의 길이는 1이고, 다른 모든 차원의 길이는 변경되지 않습니다.

2×3×3 입력 배열 A가 있다고 가정하겠습니다. 이때 mode(A,[1 2])A의 각 페이지의 최빈값을 요소로 갖는 1×1×3 배열을 반환합니다.

Mapping of a 2-by-3-by-3 input array to a 1-by-1-by-3 output array

출력 인수

모두 축소

최빈값으로, 스칼라, 벡터, 행렬, 다차원 배열 또는 테이블로 반환됩니다. 발생 빈도가 같은 값이 여럿이면 mode는 그중 가장 작은 값을 반환합니다. 입력값이 복소수면 가장 작은 이 값이 정렬된 값 목록에서 첫 번째 값이 됩니다.

입력값 A가 배열인 경우, 출력값 M은 동일한 클래스의 배열입니다.

A가 테이블 또는 타임테이블이면 M은 행이 한 개 있는 테이블입니다. A의 변수가 단위를 갖는 경우, M의 변수도 동일한 단위를 갖습니다.

빈도 배열로, 스칼라, 벡터, 행렬, 다차원 배열 또는 테이블로 반환됩니다. F의 크기는 M의 크기와 같고, F의 각 요소는 M의 대응하는 요소의 발생 횟수를 나타냅니다.

입력값 A가 배열인 경우, 출력값 Fdouble 배열입니다.

A가 테이블 또는 타임테이블이면, F는 행이 한 개 있는 테이블입니다. A의 변수가 단위를 갖는 경우, F의 변수는 이러한 단위를 갖지 않습니다.

중복도를 함께 나타낸 최빈값으로, 셀형 배열 또는 테이블로 반환됩니다. C의 크기는 MF의 크기와 같고, C의 각 요소는 M의 대응 요소와 빈도가 같은 모든 값이 정렬된 열 벡터입니다.

입력값 A가 테이블 또는 타임테이블이면 출력값 C는 행이 한 개 있는 테이블입니다. C의 각 변수는 셀형 배열을 가지며, 이 배열은 M의 대응 요소와 빈도가 같은 모든 값이 정렬된 열 벡터를 포함합니다. A의 변수가 단위를 갖는 경우, C의 변수도 동일한 단위를 갖습니다.

  • mode 함수는 이산 데이터나 크게 반올림된 데이터에서 가장 유용합니다. 연속 확률 분포의 최빈값은 밀도 함수의 피크로 정의됩니다. mode 함수를 이 분포의 샘플에 적용해 양호한 피크 추정값을 얻기는 어렵습니다. 히스토그램 또는 밀도 추정치를 계산하고 이 추정값의 피크를 계산하는 것이 더 좋습니다. 또한 mode 함수는 여러 개의 최빈값이 있는 분포에서 피크를 찾기에 적합하지 않습니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

| | | |