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

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 = 3x1 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(시간이 아님) 값은 무시됩니다. 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 이전에 개발됨