주요 콘텐츠

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

struct2table

구조체형 배열을 테이블로 변환

설명

T = struct2table(S)는 구조체형 배열을 테이블로 변환합니다. 입력 구조체의 각 필드는 출력 테이블에서 변수가 됩니다.

  • 입력값이 필드 n개가 포함된 스칼라 구조체이고 이 필드들 모두가 m개 행을 가지는 경우 출력값은 m×n 테이블이 됩니다.

  • 입력값이 필드 n개가 포함된 m×1 또는 1×m 구조체형 배열이면 출력값은 m×n 테이블이 됩니다.

예제

T = struct2table(S,Name,Value)는 하나 이상의 Name,Value 인수를 추가 옵션으로 지정하여 구조체형 배열에서 테이블을 만듭니다.

예를 들어, 테이블에 포함할 행 이름을 지정할 수 있습니다.

예제

예제

모두 축소

디폴트 옵션을 사용하여 스칼라 구조체를 테이블로 변환합니다.

구조체형 배열 S를 만듭니다.

S.Name = ["Chang";"Brown";"Ruiz"];
S.Smoker = ["Y";"N";"Y"];
S.SystolicBP = [124;122;130];
S.DiastolicBP = [93;80;92];

스칼라 구조체 S에는 4개의 필드가 있으며 각 필드는 3개의 행으로 구성되어 있습니다.

구조체형 배열을 테이블로 변환합니다.

T = struct2table(S)
T=3×4 table
     Name      Smoker    SystolicBP    DiastolicBP
    _______    ______    __________    ___________

    "Chang"     "Y"         124            93     
    "Brown"     "N"         122            80     
    "Ruiz"      "Y"         130            92     

S의 구조체 필드 이름은 출력 테이블의 변수 이름이 됩니다. T의 크기는 3×4입니다.

테이블 속성 T.Properties.RowNames를 수정한 다음, 변수 Name을 삭제하여 Name을 변수에서 행 이름으로 변경합니다.

T.Properties.RowNames = T.Name;
T.Name = [];

T
T=3×3 table
             Smoker    SystolicBP    DiastolicBP
             ______    __________    ___________

    Chang     "Y"         124            93     
    Brown     "N"         122            80     
    Ruiz      "Y"         130            92     

비 스칼라 구조체형 배열 S를 만듭니다.

S(1,1).Name = "Chang";
S(1,1).Smoker = "Y";
S(1,1).SystolicBP = 124;
S(1,1).DiastolicBP = 93;

S(2,1).Name = "Brown";
S(2,1).Smoker = "N";
S(2,1).SystolicBP = 122;
S(2,1).DiastolicBP = 80;

S(3,1).Name = "Ruiz";
S(3,1).Smoker = "Y";
S(3,1).SystolicBP = 130;
S(3,1).DiastolicBP = 92;

S
S=3×1 struct array with fields:
    Name
    Smoker
    SystolicBP
    DiastolicBP

S는 필드가 4개인 3×1 구조체형 배열입니다.

구조체형 배열을 테이블로 변환합니다.

T = struct2table(S)
T=3×4 table
     Name      Smoker    SystolicBP    DiastolicBP
    _______    ______    __________    ___________

    "Chang"     "Y"         124            93     
    "Brown"     "N"         122            80     
    "Ruiz"      "Y"         130            92     

S의 구조체 필드 이름은 출력 테이블의 변수 이름이 됩니다. T의 크기는 3×4입니다.

"AsArray",true를 사용하여 필드의 행 개수가 서로 다른 스칼라 구조체에서 테이블을 만듭니다.

name 필드, billing 필드, test 필드를 가진 스칼라 구조체 S를 만듭니다.

S.name = "John Doe";
S.billing = 127.00;
S.test = [79, 75, 73; 180, 178, 177.5; 220, 210, 205]
S = struct with fields:
       name: "John Doe"
    billing: 127
       test: [3×3 double]

필드의 행 개수가 서로 다릅니다. 따라서, 디폴트 값 "AsArray",false로는 struct2table(S)를 사용할 수 없습니다.

스칼라 구조체를 배열로 처리한 후 테이블로 변환합니다.

T = struct2table(S,"AsArray",true)
T=1×3 table
       name       billing        test    
    __________    _______    ____________

    "John Doe"      127      {3×3 double}

T는 하나의 행을 가집니다.

입력 인수

모두 축소

입력 배열로, 구조체로 지정됩니다.

이름-값 인수

모두 축소

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: "RowNames",["row1","row2","row3"]은 테이블 T에 행 이름 row1, row2, row3을 사용합니다.

행 이름으로, 비어 있지 않은 고유한 요소를 갖는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. 행 이름의 개수는 입력 배열의 행 개수와 같아야 합니다.

':'을 제외한 공백이나 비ASCII 문자를 포함하여 모든 Unicode® 문자를 행 이름에 사용할 수 있습니다.

선행 또는 후행 공백 문자를 갖는 행 이름을 지정할 경우 struct2table은 행 이름에서 해당 공백을 제거합니다.

R2021a 이후

차원 이름으로, 문자형 벡터 요소를 2개 가진 셀형 배열 또는 비어 있지 않고 고유한 요소를 2개 가진 string형 배열로 지정됩니다.

차원 이름에는 공백 및 비ASCII 문자를 포함하여 모든 Unicode 문자를 사용할 수 있습니다. 하지만 차원 이름은 테이블 변수 이름이나 예약된 이름 'Properties', 'RowNames', 'VariableNames' 또는 ':'과 일치할 수 없습니다.

또는 모든 릴리스에서 테이블의 DimensionNames 속성을 설정하여 차원 이름을 지정할 수 있습니다.

입력값을 구조체형 배열로 처리하는 플래그로, 숫자형 또는 논리값 1(true) 또는 0(false)으로 지정됩니다.

true

입력값이 비 스칼라 구조체형 배열인 경우 디폴트 값

구조체형 배열을 각 구조체에 대해 하나의 행을 가지고 구조체형 배열의 각 필드에 대해 하나의 변수를 가지는 테이블로 변환합니다. 필드의 크기는 서로 다를 수 있습니다.

S(1:m).fieldname 필드의 값에 따라 다음 사항이 적용됩니다.

  • 크기와 데이터형이 호환 가능하고 각 값에 하나의 행이 있는 경우, 대응 테이블 변수는 동종 배열입니다.

    예:

    S(1).a = [1 2]
    S(2).a = [3 4]
    S(1).b = 5
    S(2).b = 6
    T = struct2table(S)
    
    T =
      2×2 table
          a       b
        ______    _
        1    2    5
        3    4    6
    
  • 크기가 다르거나 데이터형이 호환되지 않거나 값에 두 개 이상의 행이 있는 경우, 대응 테이블 변수는 셀형 배열입니다.

    예:

    S(1).a = [1 2]
    S(2).a = [3 4 5 6]
    S(1).b = 7
    S(2).b = 8
    T = struct2table(S)
    
    T =
      2×2 table
             a         b
        ___________    _
        {[    1 2]}    7
        {[3 4 5 6]}    8
    

false

입력값이 스칼라 구조체인 경우 디폴트 값

필드 n개가 포함된 스칼라 구조체를 m×n 테이블로 변환합니다. 각 필드에는 m개 행이 있어야 합니다.

예:

S.a = [1;2;3]
S.b = [4 5;6 7;8 9]
T = struct2table(S)
T =
  3×2 table
    a      b   
    _    ______
    1    4    5
    2    6    7
    3    8    9

출력 인수

모두 축소

출력 테이블로, 테이블 형식으로 반환됩니다. 이 테이블에는 설명, 변수 단위, 변수 이름, 행 이름과 같은 메타데이터가 저장될 수 있습니다. 자세한 내용은 table의 속성 섹션을 참조하십시오.

확장 기능

모두 확장

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

버전 내역

R2013b에 개발됨