이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

mode

배열에서 최빈값

설명

예제

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

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

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

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

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

예제

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의 대응하는 요소와 빈도가 같은 모든 값의 정렬된 벡터입니다.

예제

모두 축소

3x4 행렬을 정의합니다.

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

3x4 행렬을 정의합니다.

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 사이의 정수로 구성된 1x3x4 배열을 만듭니다.

A = gallery('integerdata',10,[1,3,4],1)
A = 
A(:,:,1) =

    10     8    10


A(:,:,2) =

     6     9     5


A(:,:,3) =

     9     6     1


A(:,:,4) =

     4     9     5

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

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

    10


M(:,:,2) =

     5


M(:,:,3) =

     1


M(:,:,4) =

     4

작업은 두 번째 차원에 대한 가장 자주 발생하는 값을 찾아서 1x1x4 배열을 생성합니다. 두 번째 차원의 크기는 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

3x4 행렬을 정의합니다.

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입니다.

3x4 행렬을 정의합니다.

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}는 2x1 벡터 [0;1]입니다.

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

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

A = gallery('integerdata',10,[1,4],3,'uint16')
A = 1x4 uint16 row vector

   6   3   2   3

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

[M,F] = mode(A),
M = uint16
    3
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이 되고, 다른 모든 차원의 크기는 변경되지 않습니다.

2차원 입력 배열 A가 있다고 가정하겠습니다.

  • dim = 1인 경우 mode(A,1)은 각 열의 최빈값이 포함된 행 벡터를 반환합니다.

  • dim = 2인 경우 mode(A,2)는 각 행의 최빈값이 포함된 열 벡터를 반환합니다.

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

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

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

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

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

출력 인수

모두 축소

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

M의 클래스는 입력 배열 A의 클래스와 동일합니다.

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

F의 클래스는 항상 double입니다.

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

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

확장 기능

참고 항목

| | | |

R2006a 이전에 개발됨