주요 콘텐츠

unique

설명

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

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

  • A가 categorical형 배열이면 정렬 순서는 범주 순서에 의해 정해집니다.

예제

C = unique(A,setOrder)A의 고유한 값을 정렬된 순서로 반환할지 안정된 순서로 반환할지 지정합니다.

예제

C = unique(___,occurrence)는 이전 구문 중 하나에 대해 반복되는 값의 첫 번째 인덱스를 반환할지 마지막 인덱스를 반환할지 지정합니다.

C = unique(___,"rows")A의 각 행을 하나의 엔터티로 처리하고 A의 고유한 행을 정렬된 순서로 반환합니다. 입력 데이터가 문자형 벡터로 구성된 셀형 배열인 경우 "rows" 옵션은 지원되지 않습니다.

예제

C = unique(___,"legacy")unique 함수 동작을 R2012b 및 이전 릴리스처럼 실행시킵니다. "legacy" 옵션을 TreatMissingAsDistinct와 함께 지정하거나 setOrder 인수 및 occurrence 인수와 함께 지정하는 것은 지원되지 않습니다. "legacy" 옵션은 categorical형 배열, datetime형 배열, duration형 배열, calendarDuration형 배열, table형 또는 timetable형을 지원하지 않습니다.

C = unique(___,TreatMissingAsDistinct=tf)는 누락값을 서로 다른 값으로 처리할지 여부를 지정합니다. (R2026a 이후)

예제

[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,:)입니다.

예제

예제

모두 축소

반복되는 값을 사용하여 벡터를 만듭니다. 그런 다음 벡터의 고유한 값을 구합니다.

A = [9 2 9 5];
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에서 고유한 행을 찾습니다. uniqueA의 행을 첫 번째 변수 Age를 기준으로 정렬한 다음, 두 번째 변수 Height를 기준으로 정렬해 반환합니다.

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  

첫 번째 변수 Age에서 고유한 값을 갖는 테이블 행을 찾습니다. 하나의 테이블 변수만 고유한 값을 갖도록 하려면 unique가 반환하는 인덱스를 사용하여 테이블에서 해당 행을 추출하면 됩니다.

[C,ia] = unique(A.Age);
B = A(ia,:)
B=3×3 table
              Age    Height    Weight
              ___    ______    ______

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

반복되는 값을 사용하여 벡터를 만듭니다. A의 고유한 값을 구하고, C = A(ia)가 되고 A = C(ic)가 되는 인덱스 벡터 iaic를 반환합니다.

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

     2     5     9

ia = 3×1

     2
     4
     1

ic = 4×1

     3
     1
     3
     2

일부 반복되는 행이 있는 10×3 행렬을 만듭니다.

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

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

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

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

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

ia = 7×1

     6
     7
     3
     5
     1
     4
     2

ic = 10×1

     5
     7
     3
     6
     4
     1
     2
     4
     7
     7

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

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

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

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

1에서 5 사이의 정수형 난수로 구성된 벡터를 만듭니다. 벡터에서 고유한 요소를 구하고, 인덱스 벡터 iaic를 반환합니다.

a = randi([1 5],200,1);
[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

반복되는 값을 사용하여 벡터를 만듭니다. 벡터에서 고유한 값을 구하고, 집합 순서를 "stable"로 지정하여 벡터에 표시되는 순서와 동일한 순서로 반환합니다.

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

     9     2     5

누락값을 포함하는 벡터를 만듭니다. 벡터에서 고유한 값을 찾습니다. unique는 각 누락값을 별개의 값으로 처리합니다.

A = [5 8 NaN NaN];
C = unique(A)
C = 1×4

     5     8   NaN   NaN

또는 누락값의 각 인스턴스를 중복 값으로 처리합니다(R2026a 이후).

C2 = unique(A,TreatMissingAsDistinct=false)
C2 = 1×3

     5     8   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

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

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

    3.1416
    3.1416
    6.2832
    9.4248
   12.5664
   15.7080
   18.8496
   18.8496

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

Ctol = uniquetol(A)
Ctol = 6×1

    3.1416
    6.2832
    9.4248
   12.5664
   15.7080
   18.8496

string형 배열을 만듭니다. A에 포함된 고유한 문자형 벡터를 찾습니다.

A = ["one" "two" "twenty-two" "One" "two"];
C = unique(A)
C = 1×4 string
    "One"    "one"    "twenty-two"    "two"

문자열 중 하나에 후행 공백이 있는 string형 배열을 만듭니다. 배열에서 고유한 문자열을 찾습니다. unique는 후행 공백이 있는 문자열을 별개의 문자열로 처리합니다.

A = ["dog" "cat" "horse" "horse" "dog "];
C = unique(A)
C = 1×4 string
    "cat"    "dog"    "dog "    "horse"

입력 인수

모두 축소

입력 데이터로, 배열, 테이블 또는 타임테이블로 지정됩니다.

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

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

  • A가 categorical형 배열이면 정렬 순서는 범주 순서에 의해 정해집니다. categorical형 배열의 정렬 순서를 보려면 categories 함수를 사용하십시오.

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

  • sort ("rows" 옵션을 지정하는 경우에는 sortrows)

  • ne(같지 않음)

메서드에서는 동작이나 결과가 충돌되어서는 안 됩니다. sort 또는 sortrows는 안정적인 정렬 알고리즘을 사용해야 합니다. 예를 들어 A를 공통 루트 클래스에서 파생된 이종 배열(예: 그래픽스 객체로 구성된 배열)로 지정할 수 있습니다.

C에서 반환되는 값의 순서로, 다음 표에 있는 값 중 하나로 지정됩니다.

설명

"sorted"

C의 값(또는 행)을 sort에서 반환되는 것과 동일하게 정렬된 순서로 반환합니다.

"stable"

C의 값(또는 행)이 A에 표시되는 것과 동일한 순서로 반환됩니다.

예: C = unique([5 5 3 4],"sorted")C = [3 4 5]와 같이 정렬된 순서로 값을 반환합니다.

예: C = unique([5 5 3 4],"stable")C = [5 3 4]와 같이 안정된 순서로 값을 반환합니다.

ia에서 반환되는 인덱스의 발생 지점으로, 다음 표에 있는 값 중 하나로 지정됩니다.

설명
"first"A에 반복되는 값(또는 행)이 있는 경우 ia는 반복되는 값 중 처음 값의 인덱스를 포함합니다.
"last"A에 반복되는 값(또는 행)이 있는 경우 ia는 반복되는 값 중 마지막 값의 인덱스를 포함합니다.

예: [C,ia,ic] = unique([9 9 9],"first")는 반복되는 값(또는 행) 중 처음 값의 인덱스를 ia = 1로 반환합니다.

예: [C,ia,ic] = unique([9 9 9],"last")는 반복되는 값(또는 행) 중 마지막 값의 인덱스를 ia = 3으로 반환합니다.

R2026a 이후

누락값을 서로 다른 값으로 처리하는 옵션으로, 다음 값 중 하나로 지정됩니다.

  • true 또는 1 — 누락값을 서로 다른 값으로 처리합니다. 입력 데이터에서 누락값의 각 인스턴스는 C에 포함됩니다.

  • false 또는 0 — 누락값의 반복되는 각 인스턴스를 중복으로 처리합니다. C에 포함되는 누락값은 최대 1개입니다. 입력 데이터가 테이블이거나 "rows" 옵션을 지정하는 경우, C는 누락값을 갖는 여러 개의 행을 포함할 수 있습니다. 동일한 열에 누락값이 있고, 나머지 열의 누락되지 않은 값이 서로 일치하면 행은 중복으로 간주됩니다.

예: C = unique(A,TreatMissingAsDistinct=false)는 누락값의 각 인스턴스를 중복으로 처리합니다.

데이터형: logical

출력 인수

모두 축소

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

  • "rows" 옵션을 지정하지 않고 A가 행 벡터이면 C는 행 벡터입니다.

  • "rows" 옵션을 지정하지 않고 A가 열 벡터이면 C는 열 벡터입니다.

  • "rows" 옵션을 지정하지 않으면 CA의 고유한 행을 포함하는 행렬입니다.

  • A가 테이블 또는 타임테이블이면 CA와 변수 개수가 같은 테이블 또는 타임테이블입니다.

A에 대한 인덱스로, 반복된 요소 중 처음 요소 인덱스로 구성된 열 벡터로 반환됩니다. occurrence"last"로 지정하는 경우 ia는 반복되는 요소 중 마지막 요소 인덱스를 포함합니다.

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

C에 대한 인덱스로, 열 벡터로 반환됩니다.

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

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

  • A가 테이블 또는 타임테이블이거나 "rows" 옵션을 지정하는 경우 A = C(ic,:)입니다.

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

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

확장 기능

모두 확장

버전 내역

R2006a 이전에 개발됨

모두 확장