Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

union

두 배열의 합집합(union)

설명

예제

C = union(A,B)AB의 데이터를 반복 없이 결합해 반환합니다. C는 순서가 정렬됩니다.

  • AB가 table형이거나 timetable형인 경우, union은 두 테이블에서 결합한 행 집합을 반환합니다. 타임테이블인 경우 union은 동일성을 판별하기 위하여 행 시간값을 고려하며, 행 시간값을 기준으로 출력 타임테이블 C를 정렬합니다.

예제

C = union(A,B,setOrder)C를 특정 순서로 반환합니다. setOrder'sorted' 또는 'stable'일 수 있습니다.

C = union(A,B,___,'rows')C = union(A,B,'rows',___)A의 각 행과 B의 각 행을 단일 엔터티로 취급하고, AB의 행을 반복 없이 결합해 반환합니다. AB는 반드시 지정해야 하며, setOrder를 선택적으로 지정할 수 있습니다.

'rows' 옵션은 입력값 중 하나가 categorical형 배열이나 datetime형 배열이 아닌 한, 셀형 배열을 지원하지 않습니다.

예제

[C,ia,ib] = union(___)은 위에 열거된 구문 중 하나를 사용하여 인덱스 벡터 iaib도 반환합니다.

  • 일반적으로, C의 값은 A(ia)의 요소와 B(ib)의 요소를 결합하여 정렬한 것입니다.

  • 'rows' 옵션을 지정한 경우, C의 행은 A(ia,:)의 행과 B(ib,:)의 행을 결합하여 정렬한 것이 됩니다.

  • AB가 table형이거나 timetable형인 경우, CA(ia,:)의 행과 B(ib,:)의 행을 결합하여 정렬한 것이 됩니다.

예제

[C,ia,ib] = union(A,B,'legacy')[C,ia,ib] = union(A,B,'rows','legacy')union 함수를 R2012b 및 이전 릴리스처럼 실행시킵니다.

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

예제

모두 축소

공통된 값을 갖는 두 개의 벡터를 정의합니다.

A = [5 7 1]; 
B = [3 1 1];

벡터 AB의 합집합을 구합니다.

C = union(A,B)
C = 1×4

     1     3     5     7

공통된 행을 갖는 두 개의 테이블을 정의합니다.

A = table([1:5]',['A';'B';'C';'D';'E'],logical([0;1;0;1;0]))
A=5×3 table
    Var1    Var2    Var3 
    ____    ____    _____

     1       A      false
     2       B      true 
     3       C      false
     4       D      true 
     5       E      false

B = table([1:2:10]',['A';'C';'E';'G';'I'],logical(zeros(5,1)))
B=5×3 table
    Var1    Var2    Var3 
    ____    ____    _____

     1       A      false
     3       C      false
     5       E      false
     7       G      false
     9       I      false

테이블 AB의 합집합을 구합니다.

C = union(A,B)
C=7×3 table
    Var1    Var2    Var3 
    ____    ____    _____

     1       A      false
     2       B      true 
     3       C      false
     4       D      true 
     5       E      false
     7       G      false
     9       I      false

공통된 값을 갖는 두 개의 벡터를 정의합니다.

A = [5 7 1]; 
B = [3 1 1];

벡터 AB의 합집합뿐만 아니라, 인덱스 벡터 iaib도 구합니다.

[C,ia,ib] = union(A,B)
C = 1×4

     1     3     5     7

ia = 3×1

     3
     1
     2

ib = 1

C의 값은 A(ia)B(ib)의 결합된 값입니다.

3명의 성별, 연령, 키를 포함하는 테이블 A를 정의합니다.

A = table(['M';'M';'F'],[27;52;31],[74;68;64],...
'VariableNames',{'Gender' 'Age' 'Height'},...
'RowNames',{'Ted' 'Fred' 'Betty'})
A=3×3 table
             Gender    Age    Height
             ______    ___    ______

    Ted        M       27       74  
    Fred       M       52       68  
    Betty      F       31       64  

A와 같은 변수를 가진 테이블 B를 정의합니다.

B = table(['F';'M'],[64;68],[31;47],...
'VariableNames',{'Gender' 'Height' 'Age'},...
'RowNames',{'Meg' 'Joe'})
B=2×3 table
           Gender    Height    Age
           ______    ______    ___

    Meg      F         64      31 
    Joe      M         68      47 

테이블 AB의 합집합뿐만 아니라, 인덱스 벡터 iaib도 구합니다.

[C,ia,ib] = union(A,B)
C=4×3 table
             Gender    Age    Height
             ______    ___    ______

    Betty      F       31       64  
    Ted        M       27       74  
    Joe        M       47       68  
    Fred       M       52       68  

ia = 3×1

     3
     1
     2

ib = 2

MegBetty에 대한 데이터는 같습니다. unionBetty에 대응하는 A의 인덱스만 반환합니다.

하나의 공통된 행을 갖는 두 개의 행렬을 정의합니다.

A = [2 2 2; 0 0 1];
B = [1 2 3; 2 2 2; 2 2 2];

AB의 반복 없이 결합된 행뿐만 아니라, 인덱스 벡터 iaib도 구합니다.

[C,ia,ib] = union(A,B,'rows')
C = 3×3

     0     0     1
     1     2     3
     2     2     2

ia = 2×1

     2
     1

ib = 1

C의 행은 A(ia,:)B(ib,:)의 결합된 행입니다.

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

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

A = [5 7 1]; 
B = [3 1 1];
[C,ia,ib] = union(A,B,'stable')
C = 1×4

     5     7     1     3

ia = 3×1

     1
     2
     3

ib = 1

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

A = [5 7 1]; 
B = [3 1 1];
[C,ia,ib] = union(A,B,'sorted')
C = 1×4

     1     3     5     7

ia = 3×1

     3
     1
     2

ib = 1

NaN을 포함하는 두 개의 벡터를 정의합니다.

A = [5 NaN 1]; 
B = [4 NaN NaN];

벡터 AB의 합집합을 구합니다.

C = union(A,B)
C = 1×6

     1     4     5   NaN   NaN   NaN

union은 각각의 NaN 값을 서로 다른 값으로 취급합니다.

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

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

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

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

A의 요소와 B의 요소를 결합합니다.

[C,ia,ib] = union(A,B)
C = 1x6 cell
    {'cat'}    {'dog'}    {'dog '}    {'fish'}    {'fish '}    {'horse'}

ia = 4×1

     2
     1
     3
     4

ib = 2×1

     1
     3

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

열 벡터 문자형 배열을 만듭니다.

A = ['A';'B';'C']
A = 3x1 char array
    'A'
    'B'
    'C'

class(A)
ans = 
'char'

double형 숫자 요소를 포함하는 행 벡터를 만듭니다.

B = [68 69 70]
B = 1×3

    68    69    70

class(B)
ans = 
'double'

ABunion은 열 벡터 문자형 배열을 반환합니다.

C = union(A,B)
C = 6x1 char array
    'A'
    'B'
    'C'
    'D'
    'E'
    'F'

class(C)
ans = 
'char'

글자 a, b, c를 포함하는 문자형 벡터를 만듭니다.

A = ['a';'b';'c'];
class(A)
ans = 
'char'

글자 c, d, e를 포함하는 문자형 벡터로 구성된 셀형 배열을 만듭니다.

B = {'c','d','e'};
class(B)
ans = 
'cell'

A의 요소와 B의 요소를 결합합니다.

C = union(A,B)
C = 5x1 cell
    {'a'}
    {'b'}
    {'c'}
    {'d'}
    {'e'}

결과 C는 문자형 벡터로 구성된 셀형 배열입니다.

class(C)
ans = 
'cell'

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

현재 동작으로 AB의 합집합을 구합니다.

A = [5 7 1]; 
B = [3 1 1];
[C1,ia1,ib1] = union(A,B)
C1 = 1×4

     1     3     5     7

ia1 = 3×1

     3
     1
     2

ib1 = 1

AB의 합집합을 구하고 레거시 동작을 유지합니다.

A = [5 7 1]; 
B = [3 1 1];
[C2,ia2,ib2] = union(A,B,'legacy')
C2 = 1×4

     1     3     5     7

ia2 = 1×2

     1     2

ib2 = 1×2

     3     1

입력 인수

모두 축소

입력 배열. 'rows' 옵션을 지정할 경우 AB는 열 개수가 같아야 합니다.

AB는 동일한 클래스여야 하며, 다음과 같은 예외가 있습니다.

  • logical, char 및 모든 숫자형 클래스는 double형 배열과 결합할 수 있습니다.

  • 문자형 벡터로 구성된 셀형 배열은 문자형 배열이나 string형 배열과 결합할 수 있습니다.

  • categorical형 배열은 문자형 배열, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열과 결합할 수 있습니다.

  • datetime형 배열은 날짜를 나타내는 문자형 벡터로 구성된 셀형 배열 또는 단일 날짜 문자형 벡터와 결합할 수 있습니다.

데이터형에 따라 AB에 대한 다음과 같은 추가 요구 사항이 있습니다.

  • AB가 모두 순서형 categorical형 배열인 경우 A와 B는 순서를 포함하여 동일한 범주 집합을 가져야 합니다. AB가 모두 순서형이 아니면 범주 집합이 동일할 필요가 없으며 범주 이름을 사용하여 비교가 수행됩니다. 이 경우, C의 범주에는 A의 범주가 먼저 열거되고 이어서 A에 있지 않은 B의 범주가 열거됩니다. 이러한 범주는 AB의 순서와 동일하고 범주 순서는 C를 정렬하는 데 사용됩니다.

  • AB가 table형이거나 timetable형이면 동일한 변수 이름을 가져야 합니다(순서 제외). table형인 경우 행 이름이 무시되기 때문에 두 행의 이름이 달라도 값이 같으면 같은 것으로 간주됩니다. timetable형인 경우 행 시간값이 고려되기 때문에 두 행의 값이 같아도 시간값이 다르면 같은 것으로 간주되지 않습니다.

  • AB가 datetime형 배열이면 표준 시간대를 지정하는지 여부가 서로 일치해야 합니다.

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

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

  • ne

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

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

플래그설명
'sorted'

C의 값(또는 행)이 sort에서 반환되는 정렬된 순서대로 반환됩니다.

예제

C = union([5 5 3],[1 2 5],'sorted')
C =

     1     2     3     5

'stable'

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

예제

C = union([5 5 3],[1 2 5],'stable')
C =

     5     3     1     2

데이터형: char | string

출력 인수

모두 축소

AB의 결합된 데이터로, 벡터, 행렬, table형 또는 timetable형으로 반환됩니다. 입력 인수 AB가 table형 또는 timetable형인 경우 C의 변수 순서는 A의 변수 순서와 동일합니다.

입력값이 벡터 또는 행렬이면서 'legacy' 플래그가 지정되지 않은 경우 C의 형태는 다음과 같습니다.

  • 'rows' 플래그가 지정되지 않은 경우 AB 중 하나라도 행 벡터가 아니면 C는 열 벡터가 됩니다(A와 B가 둘 다 행 벡터이면 C는 행 벡터가 됨). 예를 들면, union([],[1 2])는 열 벡터를 반환합니다.

  • 'rows' 플래그가 지정된 경우 CAB의 결합된 행을 포함하는 행렬입니다.

입력값 AB의 클래스에 따라 C의 클래스가 달라집니다.

  • AB의 클래스가 동일하면 C도 동일한 클래스가 됩니다.

  • char형 또는 비double형 숫자형 클래스를 double형과 결합할 경우 C는 비double형 입력값과 동일한 클래스가 됩니다.

  • logical형 클래스를 double형과 결합할 경우 Cdouble형이 됩니다.

  • 문자형 벡터로 구성된 셀형 배열을 char형과 결합할 경우 C는 문자형 벡터로 구성된 셀형 배열이 됩니다.

  • categorical형 배열을 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, 또는 string형과 결합할 경우 C는 categorical형 배열이 됩니다.

  • datetime형 배열을 날짜 문자형 벡터로 구성된 셀형 배열이나 단일 날짜 문자형 벡터와 결합할 경우 C는 datetime형 배열이 됩니다.

  • string형 배열을 문자형 벡터로 구성된 셀형 배열 또는 문자형 벡터와 결합할 경우 C는 string형 배열이 됩니다.

A에 대한 인덱스로, 'legacy' 플래그가 지정되지 않은 경우 열 벡터로 반환됩니다. ia는 합집합에 들어가는 A의 값(또는 행)을 식별합니다. 값(또는 행)이 A에서 여러 번 나타나면 ia는 처음 나오는 값(또는 행)에 대한 인덱스를 포함합니다. 값이 AB 모두에 나타나면 iaA에서 처음 나오는 값에 대한 인덱스를 포함합니다.

B에 대한 인덱스로, 'legacy' 플래그가 지정되지 않은 경우 열 벡터로 반환됩니다. ib는 합집합에 들어가는 B의 값(또는 행)을 식별합니다. B에만 있는 반복되는 값(또는 행)이 있으면 ib는 처음 나오는 값(또는 행)에 대한 인덱스를 포함합니다. 값(또는 행)이 AB 모두에 나타나면 ib는 값(또는 행)에 대한 인덱스를 포함하지 않습니다.

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

확장 기능

스레드 기반 환경
MATLAB®의 backgroundPool을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool을 사용해 코드 실행 속도를 높일 수 있습니다.

버전 내역

R2006a 이전에 개발됨