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

unique

배열 내 고유한 값

구문

C = unique(A)
C = unique(A,setOrder)
C = unique(A,occurrence)
C = unique(A,___,'rows')
C = unique(A,'rows',___)
[C,ia,ic] = unique(___)
[C,ia,ic] = unique(A,'legacy')
[C,ia,ic] = unique(A,'rows','legacy')
[C,ia,ic] = unique(A,occurrence,'legacy')
[C,ia,ic] = unique(A,'rows',occurrence,'legacy')

설명

예제

C = unique(A)A의 데이터를 겹치지 않게 반환합니다. C가 정렬된 순서로 표시됩니다.

  • A가 테이블 또는 타임테이블인 경우 uniqueA 내 고유한 값으로 이루어진 행을 정렬된 순서로 반환합니다. 타임테이블의 경우, unique는 행이 고유한지를 판별할 때 행 시간값과 행 값을 고려하며 행 시간값을 기준으로 출력 타임테이블 C를 정렬합니다.

예제

C = unique(A,setOrder)A의 고유 값을 특정 순서로 반환합니다. setOrder'sorted'(디폴트 값) 또는 'stable'일 수 있습니다.

C = unique(A,occurrence)는 반복된 값의 경우 반환할 인덱스를 지정합니다. occurrence'first'(디폴트 값) 또는 'last'일 수 있습니다.

예제

C = unique(A,___,'rows')C = unique(A,'rows',___)A의 각 행을 단일 엔터티로 취급하고 A의 고유한 행을 정렬된 순서로 반환합니다. A는 반드시 지정해야 하며, setOrder 또는 occurrence를 선택적으로 지정할 수 있습니다.

'rows' 옵션은 셀형 배열을 지원하지 않습니다.

또한 [C,ia,ic] = unique(___)는 위에 열거된 구문을 사용하여 인덱스 벡터 iaic를 반환합니다.

  • A가 벡터인 경우 C = A(ia)이고 A = C(ic)입니다.

  • A가 행렬이나 배열인 경우 C = A(ia)이고 A(:) = C(ic)입니다.

  • 'rows' 옵션을 지정하면 C = A(ia,:)이고 A = C(ic,:)가 됩니다.

  • A가 테이블 또는 타임테이블인 경우 C = A(ia,:)이고 A = C(ic,:)입니다.

예제

[C,ia,ic] = unique(A,'legacy'), [C,ia,ic] = unique(A,'rows','legacy'), [C,ia,ic] = unique(A,occurrence,'legacy'), [C,ia,ic] = unique(A,'rows',occurrence,'legacy')unique 함수를 R2012b와 그 이전 릴리스처럼 실행합니다.

'legacy' 옵션은 categorical형 배열, datetime형 배열, duration형 배열, calendarDuration 형 배열, table형 또는 timetable형을 지원하지 않습니다.

예제

모두 축소

반복된 값을 사용하여 벡터를 정의합니다.

A = [9 2 9 5];

A 내 고유한 값을 구합니다.

C = unique(A)
C = 1×3

     2     5     9

반복된 데이터를 사용하여 테이블을 정의합니다.

Name = {'Fred';'Betty';'Bob';'George';'Jane'};
Age = [38;43;38;40;38];
Height = [71;69;64;67;64];
Weight = [176;163;131;185;131];

A = table(Age,Height,Weight,'RowNames',Name)
A=5×3 table
              Age    Height    Weight
              ___    ______    ______

    Fred      38       71       176  
    Betty     43       69       163  
    Bob       38       64       131  
    George    40       67       185  
    Jane      38       64       131  

A 내 고유한 행을 구합니다.

C = unique(A)
C=4×3 table
              Age    Height    Weight
              ___    ______    ______

    Bob       38       64       131  
    Fred      38       71       176  
    George    40       67       185  
    Betty     43       69       163  

uniqueA의 행을 첫 번째 변수 Age를 기준으로 정렬한 다음, 두 번째 변수 Height를 기준으로 정렬해 반환합니다.

반복된 값을 사용하여 벡터를 정의합니다.

A = [9 2 9 5];

A의 고유한 값과, C = A(ia)가 되고 A = C(ic)가 되는 인덱스 벡터 iaic를 구합니다.

[C, ia, ic] = unique(A)
C = 1×3

     2     5     9

ia = 3×1

     2
     4
     1

ic = 4×1

     3
     1
     3
     2

일부 반복되는 행이 있는 12x3 행렬을 만듭니다.

A = randi(3,12,3)
A = 12×3

     3     3     3
     3     2     3
     1     3     3
     3     1     2
     2     2     2
     1     3     1
     1     3     3
     2     3     1
     3     2     1
     3     1     1
      ⋮

처음 두 열의 데이터에 따라 A의 고유한 행을 찾습니다. 인덱스 벡터 iaic를 반환하도록 3개 출력값을 지정합니다.

[C,ia,ic] = unique(A(:,1:2),'rows')
C = 6×2

     1     3
     2     2
     2     3
     3     1
     3     2
     3     3

ia = 6×1

     3
     5
     8
     4
     2
     1

ic = 12×1

     6
     5
     1
     4
     2
     1
     1
     3
     5
     4
      ⋮

ia를 사용하여 A의 요소를 참조하여 처음 두 열에 고유한 조합의 요소를 가진 행을 표시합니다.

uA = A(ia,:)
uA = 6×3

     1     3     3
     2     2     2
     2     3     1
     3     1     2
     3     2     3
     3     3     3

벡터에서 고유한 요소를 찾은 다음 accumarray를 사용하여 고유한 요소가 표시되는 횟수를 계산합니다.

1에서 5 사이의 정수형 난수로 구성된 벡터를 만듭니다.

a = randi([1 5],200,1);

벡터에서 고유한 요소를 찾습니다. 인덱스 벡터 iaic를 반환합니다.

[C,ia,ic] = unique(a);

C의 각 요소가 a에 표시되는 횟수를 계산합니다. icaccumarray에 대한 첫 번째 입력값으로 지정하고 1을 두 번째 입력값으로 지정하면 함수가 ic에서 반복되는 첨자를 계산합니다. 결과를 요약합니다.

a_counts = accumarray(ic,1);
value_counts = [C, a_counts]
value_counts = 5×2

     1    46
     2    36
     3    38
     4    39
     5    41

setOrder 인수를 사용하여 C에 있는 값의 순서를 지정합니다.

C의 값이 A에서와 동일한 순서를 갖도록 하려면 'stable'을 지정하십시오.

A = [9 2 9 5];
[C, ia, ic] = unique(A,'stable')
C = 1×3

     9     2     5

ia = 3×1

     1
     2
     4

ic = 4×1

     1
     2
     1
     3

'sorted'로 순서를 지정해 볼 수도 있습니다.

[C, ia, ic] = unique(A,'sorted')
C = 1×3

     2     5     9

ia = 3×1

     2
     4
     1

ic = 4×1

     3
     1
     3
     2

NaN이 들어 있는 벡터를 정의합니다.

A = [5 5 NaN NaN];

A 내 고유한 값을 구합니다.

C = unique(A)
C = 1×3

     5   NaN   NaN

unique는 각각의 NaN 값을 서로 다른 값으로 취급합니다.

벡터 x를 만듭니다. x를 변환한 후 이 변환된 값을 다시 역변환하여 두 번째 벡터 y를 얻습니다. 이 변환 과정에서 y에 반올림 차분이 발생합니다.

x = (1:6)'*pi;
y = 10.^log10(x);

차분을 가져와서 xy가 동일하지 않은지 확인합니다.

x-y
ans = 6×1
10-14 ×

    0.0444
         0
         0
         0
         0
   -0.3553

unique를 사용하여 결합된 벡터 [x;y]에서 고유한 요소를 찾습니다. unique 함수는 정확한 비교를 수행하고 x의 값이 모두 y의 값과 정확히 같은지 확인합니다. 이를 통해 x-y에서 0이 아닌 차분을 갖는 요소를 파악할 수 있습니다. c에는 중복으로 보이는 값이 포함됩니다.

c = unique([x;y])
c = 8×1

    3.1416
    3.1416
    6.2832
    9.4248
   12.5664
   15.7080
   18.8496
   18.8496

uniquetol을 사용하여 작은 허용오차로 비교를 수행합니다. uniquetol은 허용오차 범위 내에 있는 요소를 서로 같은 것으로 간주합니다.

C = uniquetol([x;y])
C = 6×1

    3.1416
    6.2832
    9.4248
   12.5664
   15.7080
   18.8496

문자형 벡터로 구성된 셀형 배열을 만듭니다.

A = {'one','two','twenty-two','One','two'};

A에 포함된 고유한 문자형 벡터를 찾습니다.

C = unique(A)
C = 1x4 cell array
    {'One'}    {'one'}    {'twenty-two'}    {'two'}

일부 문자형 벡터에 후행 공백이 있는 문자형 벡터로 구성된 셀형 배열 A를 만듭니다.

A = {'dog','cat','fish','horse','dog ','fish '};

A에 포함된 고유한 문자형 벡터를 찾습니다.

C = unique(A)
C = 1x6 cell array
    {'cat'}    {'dog'}    {'dog '}    {'fish'}    {'fish '}    {'horse'}

unique는 문자형 벡터로 구성된 셀형 배열에 있는 후행 공백을 별개의 문자로 취급합니다.

R2012b를 비롯한 이전 릴리스와 동일한 방식으로 unique 결과를 출력하려면 코드에서 'legacy' 플래그를 사용하십시오.

현재 동작으로 A 내 고유한 요소를 구합니다.

A = [9 2 9 5];
[C1, ia1, ic1] = unique(A)
C1 = 1×3

     2     5     9

ia1 = 3×1

     2
     4
     1

ic1 = 4×1

     3
     1
     3
     2

A 내 고유한 성분을 찾아 결과를 이전 릴리스와 동일하게 출력합니다.

[C2, ia2, ic2] = unique(A, 'legacy')
C2 = 1×3

     2     5     9

ia2 = 1×3

     2     4     3

ic2 = 1×4

     3     1     3     2

입력 인수

모두 축소

입력 배열입니다.

  • A가 table형인 경우 unique는 행 이름을 고려하지 않습니다. 두 행의 이름이 달라도 값이 같으면 같은 것으로 간주됩니다.

  • A가 timetable형인 경우 unique는 행 시간값을 고려합니다. 두 행의 값이 같아도 시간값이 다르면 같은 것으로 간주되지 않습니다.

A는 다음 클래스 메서드를 갖는 객체일 수도 있습니다.

  • sort(또는 'rows' 옵션의 경우 sortrows)

  • ne

객체 클래스 메서드는 서로 일치해야 합니다. 이 객체들은 동일한 루트 클래스에서 파생된 이종 배열을 포함합니다. 예를 들어, A는 그래픽스 객체에 대한 핸들로 구성된 배열일 수 있습니다.

순서 플래그는 'sorted' 또는 'stable'로 지정되며 C에 있는 값(또는 행)의 순서를 표시합니다.

순서 플래그의미
'sorted'C의 값(또는 행)이 정렬된 순서대로 반환됩니다. 예를 들어, C = unique([5 5 3 4],'sorted')C = [3 4 5]를 반환합니다.
'stable'C의 값(또는 행)이 A에 표시되는 것과 동일한 순서대로 반환됩니다. 예를 들어, C = unique([5 5 3 4],'stable')C = [5 3 4]를 반환합니다.

데이터형: char | string

발생 플래그로, 'first' 또는 'last'로 지정되며 iaA에 있는 반복된 값에 대한 첫 번째 인덱스를 포함해야 할지 아니면 마지막 인덱스를 포함해야 할지를 나타냅니다.

발생 플래그의미
'last'A에 반복되는 값(또는 행)이 있으면 ia는 반복된 값 중 마지막 값의 인덱스를 포함합니다. 예를 들어, [C,ia,ic] = unique([9 9 9],'last','legacy')ia = 3을 반환합니다. 이것은 'legacy' 플래그를 지정한 경우, 디폴트 동작입니다.
'first'A에 반복된 값(또는 행)이 있는 경우 ia는 반복된 값 중 처음 값의 인덱스를 포함합니다. 예를 들어, [C,ia,ic] = unique([9 9 9],'first')ia = 1을 반환합니다. 이는 디폴트 동작입니다.

데이터형: char | string

출력 인수

모두 축소

A의 고유한 데이터로, 배열로 반환됩니다. C의 클래스는 입력 인수 A의 클래스와 동일합니다. C의 형태는 입력값이 벡터인지 또는 행렬인지에 따라 달라집니다.

  • 'rows' 플래그가 지정되지 않고 A가 행 벡터이면 C는 행 벡터입니다.

  • 'rows' 플래그가 지정되지 않고 A가 행 벡터가 아니면 C는 열 벡터입니다.

  • 'rows' 플래그가 지정된 경우 CA의 고유한 행을 포함하는 행렬입니다.

A에 대한 인덱스로, 반복된 요소 중 처음 요소 인덱스로 구성된 열 벡터로 반환됩니다. 'legacy' 플래그가 지정된 경우 ia는 반복된 요소 중 마지막 요소 인덱스로 구성된 행 벡터가 됩니다.

이 인덱스는 일반적으로 C = A(ia)를 충족합니다. A가 테이블이거나 'rows' 옵션이 지정된 경우 C = A(ia,:)입니다.

C에 대한 인덱스로, 'legacy' 플래그가 지정되지 않은 경우 열 벡터로 반환됩니다. ic에는 다음 속성을 충족하는 인덱스가 포함됩니다.

  • A가 벡터이면 A = C(ic)입니다.

  • A가 행렬이나 배열인 경우 A(:) = C(ic)입니다.

  • A가 테이블이거나 'rows' 옵션이 지정된 경우 A = C(ic,:)입니다.

  • 허용오차를 사용하여 고유한 부동소수점 숫자를 찾으려면 uniquetol을 사용하십시오.

  • 변수의 서브셋과 관련하여 테이블 또는 타임테이블에서 고유한 행을 찾으려면 열 첨자를 사용할 수 있습니다. 예를 들어, unique(A(:,vars))를 사용할 수 있습니다. 여기서 vars는 양의 정수, 양의 정수로 구성된 벡터, 변수 이름, 변수 이름으로 구성된 셀형 배열, 논리형 벡터 중 하나일 수 있습니다. 또는 vartype을 사용하여, 지정된 유형의 변수를 선택하는 첨자를 만들 수 있습니다.

확장 기능

R2006a 이전에 개발됨