이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
union
두 배열의 합집합(union)
구문
설명
예제
두 벡터의 합집합
공통된 값을 갖는 두 개의 벡터를 정의합니다.
A = [5 7 1]; B = [3 1 1];
벡터 A
와 B
의 합집합을 구합니다.
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
테이블 A
와 B
의 합집합을 구합니다.
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];
벡터 A
와 B
의 합집합뿐만 아니라, 인덱스 벡터 ia
와 ib
도 구합니다.
[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
테이블 A
와 B
의 합집합뿐만 아니라, 인덱스 벡터 ia
와 ib
도 구합니다.
[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
Meg
와 Betty
에 대한 데이터는 같습니다. union
은 Betty
에 대응하는 A
의 인덱스만 반환합니다.
두 행렬의 행 합집합
하나의 공통된 행을 갖는 두 개의 행렬을 정의합니다.
A = [2 2 2; 0 0 1]; B = [1 2 3; 2 2 2; 2 2 2];
A
와 B
의 반복 없이 결합된 행뿐만 아니라, 인덱스 벡터 ia
와 ib
도 구합니다.
[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
의 값이 A
와 B
에서와 동일한 순서를 갖도록 하려면 '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을 포함하는 벡터의 합집합
NaN
을 포함하는 두 개의 벡터를 정의합니다.
A = [5 NaN 1]; B = [4 NaN NaN];
벡터 A
와 B
의 합집합을 구합니다.
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'
A
와 B
의 union
은 열 벡터 문자형 배열을 반환합니다.
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'
union의 레거시 동작 유지하기
R2012b를 비롯한 이전 릴리스와 동일한 방식으로 union
결과를 출력하려면 코드에서 'legacy'
플래그를 사용하십시오.
현재 동작으로 A
와 B
의 합집합을 구합니다.
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
A
와 B
의 합집합을 구하고 레거시 동작을 유지합니다.
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
입력 인수
A,B
— 입력 배열
배열
입력 배열. 'rows'
옵션을 지정할 경우 A
와 B
는 열 개수가 같아야 합니다.
A
와 B
는 동일한 클래스여야 하며, 다음과 같은 예외가 있습니다.
logical
,char
및 모든 숫자형 클래스는double
형 배열과 결합할 수 있습니다.문자형 벡터로 구성된 셀형 배열은 문자형 배열이나 string형 배열과 결합할 수 있습니다.
categorical형 배열은 문자형 배열, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열과 결합할 수 있습니다.
datetime형 배열은 날짜를 나타내는 문자형 벡터로 구성된 셀형 배열 또는 단일 날짜 문자형 벡터와 결합할 수 있습니다.
데이터형에 따라 A
와 B
에 대한 다음과 같은 추가 요구 사항이 있습니다.
A
와B
가 모두 순서형 categorical형 배열인 경우 A와 B는 순서를 포함하여 동일한 범주 집합을 가져야 합니다.A
와B
가 모두 순서형이 아니면 범주 집합이 동일할 필요가 없으며 범주 이름을 사용하여 비교가 수행됩니다. 이 경우,C
의 범주에는A
의 범주가 먼저 열거되고 이어서A
에 있지 않은B
의 범주가 열거됩니다. 이러한 범주는A
와B
의 순서와 동일하고 범주 순서는C
를 정렬하는 데 사용됩니다.A
와B
가 table형이거나 timetable형이면 동일한 변수 이름을 가져야 합니다(순서 제외). table형인 경우 행 이름이 무시되기 때문에 두 행의 이름이 달라도 값이 같으면 같은 것으로 간주됩니다. timetable형인 경우 행 시간값이 고려되기 때문에 두 행의 값이 같아도 시간값이 다르면 같은 것으로 간주되지 않습니다.A
와B
가 datetime형 배열이면 표준 시간대를 지정하는지 여부가 서로 일치해야 합니다.
A
와 B
는 다음 클래스 메서드를 갖는 객체일 수도 있습니다.
sort
(또는'rows'
옵션의 경우sortrows
)ne
객체 클래스 메서드는 서로 일치해야 합니다. 이 객체들은 동일한 루트 클래스에서 파생된 이종 배열을 포함합니다. 예를 들어, A
와 B
는 그래픽스 객체에 대한 핸들로 구성된 배열일 수 있습니다.
setOrder
— 순서 플래그
'sorted'
(디폴트 값) | 'stable'
순서 플래그는 'sorted'
또는 'stable'
로 지정되며 C
에 있는 값(또는 행)의 순서를 표시합니다.
플래그 | 설명 |
---|---|
'sorted' |
예제 C = union([5 5 3],[1 2 5],'sorted') C = 1 2 3 5 |
'stable' |
예제 C = union([5 5 3],[1 2 5],'stable') C = 5 3 1 2 |
데이터형: char
| string
출력 인수
C
— A
와 B
의 결합된 데이터
벡터 | 행렬 | 테이블 | 타임테이블
A
와 B
의 결합된 데이터로, 벡터, 행렬, table형 또는 timetable형으로 반환됩니다. 입력 인수 A
와 B
가 table형 또는 timetable형인 경우 C
의 변수 순서는 A
의 변수 순서와 동일합니다.
입력값이 벡터 또는 행렬이면서 'legacy'
플래그가 지정되지 않은 경우 C
의 형태는 다음과 같습니다.
'rows'
플래그가 지정되지 않은 경우A
와B
중 하나라도 행 벡터가 아니면C
는 열 벡터가 됩니다(A와 B가 둘 다 행 벡터이면C
는 행 벡터가 됨). 예를 들면,union([],[1 2])
는 열 벡터를 반환합니다.'rows'
플래그가 지정된 경우C
는A
와B
의 결합된 행을 포함하는 행렬입니다.
입력값 A
와 B
의 클래스에 따라 C
의 클래스가 달라집니다.
A
와B
의 클래스가 동일하면C
도 동일한 클래스가 됩니다.char
형 또는 비double형 숫자형 클래스를double
형과 결합할 경우C
는 비double형 입력값과 동일한 클래스가 됩니다.logical
형 클래스를double
형과 결합할 경우C
는double
형이 됩니다.문자형 벡터로 구성된 셀형 배열을
char
형과 결합할 경우C
는 문자형 벡터로 구성된 셀형 배열이 됩니다.categorical형 배열을 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, 또는 string형과 결합할 경우
C
는 categorical형 배열이 됩니다.datetime형 배열을 날짜 문자형 벡터로 구성된 셀형 배열이나 단일 날짜 문자형 벡터와 결합할 경우
C
는 datetime형 배열이 됩니다.string형 배열을 문자형 벡터로 구성된 셀형 배열 또는 문자형 벡터와 결합할 경우
C
는 string형 배열이 됩니다.
ia
— A
에 대한 인덱스
열 벡터
A
에 대한 인덱스로, 'legacy'
플래그가 지정되지 않은 경우 열 벡터로 반환됩니다. ia
는 합집합에 들어가는 A
의 값(또는 행)을 식별합니다. 값(또는 행)이 A
에서 여러 번 나타나면 ia
는 처음 나오는 값(또는 행)에 대한 인덱스를 포함합니다. 값이 A
와 B
모두에 나타나면 ia
는 A
에서 처음 나오는 값에 대한 인덱스를 포함합니다.
ib
— B
에 대한 인덱스
열 벡터
B
에 대한 인덱스로, 'legacy'
플래그가 지정되지 않은 경우 열 벡터로 반환됩니다. ib
는 합집합에 들어가는 B
의 값(또는 행)을 식별합니다. B
에만 있는 반복되는 값(또는 행)이 있으면 ib
는 처음 나오는 값(또는 행)에 대한 인덱스를 포함합니다. 값(또는 행)이 A
와 B
모두에 나타나면 ib
는 값(또는 행)에 대한 인덱스를 포함하지 않습니다.
팁
테이블이나 타임테이블에 있는 변수의 서브셋에 대한 합집합을 찾으려면 열 아래 첨자를 사용할 수 있습니다. 예를 들어,
union(A(:,
를 사용할 수 있습니다. 여기서vars
),B(:,vars
))vars
는 양의 정수, 양의 정수로 구성된 벡터, 변수 이름, 변수 이름으로 구성된 셀형 배열, 논리형 벡터 중 하나일 수 있습니다. 또는vartype
을 사용하여, 지정된 유형의 변수를 선택하는 첨자를 만들 수 있습니다.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
사용법 관련 참고 및 제한 사항:
'stable'
정렬 순서는 지원되지 않습니다.'legacy'
플래그는 지원되지 않습니다.char
형 입력값은 지원되지 않습니다.
자세한 내용은 tall형 배열 항목을 참조하십시오.
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
코드 생성 시 첫 번째 인수나 두 번째 인수에 대한 셀형 배열은 지원되지 않습니다.
가변 크기의 행과 열 간에
union
을 사용하는 경우라면 코드 생성이 지원되지 않습니다.A
와B
는 방향이 동일한 가변 크기의 벡터 입력값이어야 합니다.'rows'
옵션을 지정하지 않을 경우에는 다음을 충족해야 합니다.입력값
A
와B
는 같은 방향의 벡터여야 합니다.'legacy'
옵션을 지정할 경우 입력 인수A
와B
는 행 벡터여야 합니다.가변 크기 행 벡터의 첫 번째 차원은 고정 길이 1이어야 합니다. 가변 크기 열 벡터의 두 번째 차원은 고정 길이 1이어야 합니다.
입력 인수
[]
은 지원되지 않습니다. 공집합을 나타내려면 1×0 또는 0×1 입력값을 사용하십시오(예:zeros(1,0)
).'legacy'
옵션을 지정할 경우 빈 출력값은 행 벡터, 즉 1×0입니다. 행 벡터는 0×0일 수 없습니다.
'legacy'
옵션과'rows'
옵션을 모두 지정하는 경우 출력 인수ia
와ib
는 열 벡터입니다. 이러한 출력값은 비어 있는 경우 0×1입니다. 출력 인수C
가 0×0인 경우에도 열 벡터는 0×0이 될 수 없습니다.setOrder
가'stable'
이 아니거나'legacy'
옵션을 지정할 경우 입력값은 오름차순으로 정렬되어야 합니다. 첫 번째 출력 인수C
는 오름차순으로 정렬됩니다.복소수 입력값은
single
형이거나double
형이어야 합니다.입력값 중 하나가 복소수이고 다른 하나가 실수이면 다음 중 하나를 수행하십시오.
setOrder
를'stable'
로 설정합니다.실수형 입력값을 복소수 오름차순으로 정렬합니다(절댓값 기준). 실수형 입력값이
x
라고 가정합니다.sort(complex(x))
또는sortrows(complex(x))
를 사용합니다.
Code Generation for Complex Data with Zero-Valued Imaginary Parts (MATLAB Coder) 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
union
함수는 GPU 배열을 부분적으로 지원합니다. 입력 데이터를 gpuArray
(Parallel Computing Toolbox)로 지정하면 이 함수의 일부 구문이 GPU에서 실행됩니다. 사용법 관련 참고 및 제한 사항:
'legacy'
플래그는 지원되지 않습니다.64비트 정수는 지원되지 않습니다.
자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)