Main Content

combinations

배열의 모든 요소 조합 생성

R2023a 이후

    설명

    예제

    T = combinations(A1,...,An)은 입력 배열 A1,...,An의 모든 요소 조합을 생성합니다. 여기서 출력 테이블 T의 각 행이 하나의 조합이 됩니다. 그러한 조합은 n개 요소 집합의 카테시안 곱과 동일합니다. 여기서 n개 집합은 입력 배열 A1,...,An으로 표현됩니다.

    • T의 행 개수는 각 입력 배열의 요소 개수의 곱입니다. 행 개수는 조합 개수와 동일합니다.

    • T의 변수 개수는 입력 배열의 개수와 동일합니다.

    • T에 포함된 각 변수의 데이터형은 해당 입력 배열의 데이터형과 동일합니다.

    예제

    모두 축소

    두 벡터의 모든 요소 조합을 생성합니다. 출력 테이블 T의 각 행은 첫 번째 벡터에서의 첫 번째 요소와 두 번째 벡터에서의 두 번째 요소의 조합입니다. 변수 Var1에는 첫 번째 벡터의 요소가 들어 있고, 변수 Var2에는 두 번째 벡터의 요소가 들어 있습니다.

    T = combinations([1 8 6],[9 3 2])
    T=9×2 table
        Var1    Var2
        ____    ____
    
         1       9  
         1       3  
         1       2  
         8       9  
         8       3  
         8       2  
         6       9  
         6       3  
         6       2  
    
    

    두 배열의 모든 요소 조합을 생성합니다. combinations 함수는 요소 조합 생성 전에 각 입력값을 열 벡터 입력값으로 형태 변경합니다.

    T = combinations([7 3;2 6],[9 1 4])
    T=12×2 table
        Var1    Var2
        ____    ____
    
         7       9  
         7       1  
         7       4  
         2       9  
         2       1  
         2       4  
         3       9  
         3       1  
         3       4  
         6       9  
         6       1  
         6       4  
    
    

    3개 string형 배열의 모든 요소 조합을 생성합니다. 출력 테이블의 변수 이름은 string형 배열의 이름을 기반으로 합니다.

    ID = ["A" "B" "C"];
    color = ["red" "blue" "green"];
    sz = ["small" "large"];
    
    T = combinations(ID,color,sz)
    T=18×3 table
        ID      color       sz   
        ___    _______    _______
    
        "A"    "red"      "small"
        "A"    "red"      "large"
        "A"    "blue"     "small"
        "A"    "blue"     "large"
        "A"    "green"    "small"
        "A"    "green"    "large"
        "B"    "red"      "small"
        "B"    "red"      "large"
        "B"    "blue"     "small"
        "B"    "blue"     "large"
        "B"    "green"    "small"
        "B"    "green"    "large"
        "C"    "red"      "small"
        "C"    "red"      "large"
        "C"    "blue"     "small"
        "C"    "blue"     "large"
          ⋮
    
    

    각 조합에 있는 요소를 결합하여 데이터 레이블을 생성합니다. 중괄호 {}를 사용하여 테이블 T의 내용을 추출하고 join을 사용하여 행에 있는 요소를 결합합니다.

    labels = join(T{:,:},"_")
    labels = 18x1 string
        "A_red_small"
        "A_red_large"
        "A_blue_small"
        "A_blue_large"
        "A_green_small"
        "A_green_large"
        "B_red_small"
        "B_red_large"
        "B_blue_small"
        "B_blue_large"
        "B_green_small"
        "B_green_large"
        "C_red_small"
        "C_red_large"
        "C_blue_small"
        "C_blue_large"
        "C_green_small"
        "C_green_large"
    
    

    서로 다른 크기와 데이터형을 갖는 입력값의 모든 요소 조합을 생성합니다.

    출력 테이블 T에 포함된 행의 개수는 numel(A1), numel(A2), numel(A3)의 곱과 같습니다. 출력 테이블 T의 각 변수의 데이터형은 해당 입력값의 데이터형과 동일합니다.

    A1 = [0 1; 2 3];
    A2 = ["a" "b" "c"];
    A3 = categorical(["x" "y"]);
    T = combinations(A1,A2,A3)
    T=24×3 table
        A1    A2     A3
        __    ___    __
    
        0     "a"    x 
        0     "a"    y 
        0     "b"    x 
        0     "b"    y 
        0     "c"    x 
        0     "c"    y 
        2     "a"    x 
        2     "a"    y 
        2     "b"    x 
        2     "b"    y 
        2     "c"    x 
        2     "c"    y 
        1     "a"    x 
        1     "a"    y 
        1     "b"    x 
        1     "b"    y 
          ⋮
    
    

    입력 인수

    모두 축소

    입력 배열로, 쉼표로 구분된 스칼라, 벡터, 행렬 또는 다차원 배열 목록으로 지정됩니다. 입력 배열은 크기와 데이터형이 서로 다를 수 있습니다.

    데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | struct | datetime | duration | calendarDuration | categorical | cell
    복소수 지원 여부:

    버전 내역

    R2023a에 개발됨

    참고 항목

    | | | | |