Main Content

struct2table

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

설명

예제

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

예제

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

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

예제

모두 축소

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

구조체형 배열 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: [3x3 double]

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

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

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

    "John Doe"      127      {3x3 double}

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

입력 인수

모두 축소

구조체형 배열로, 스칼라 구조체형 배열로 지정됩니다.

  • S가 모두 m개 행을 가진 필드 n개가 포함된 스칼라 구조체이면 Tm×n 테이블이 됩니다.

  • S가 필드 n개가 포함된 비 스칼라 m×1 구조체형 배열이면 Tm×n 테이블이 됩니다.

이름-값 인수

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

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

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

행 이름으로, "RowNames"와 함께 비어 있지 않은 고유한 요소를 갖는 string형 배열 또는 문자형 벡터로 구성된 셀형 배열이 쉼표로 구분되어 지정됩니다.

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

선행 또는 후행 공백 문자가 있는 행 이름을 지정하면 struct2table이 행 이름에서 공백 문자를 제거합니다.

R2021a 이상

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

차원 이름에는 공백 및 비ASCII 문자를 포함하여 모든 Unicode 문자를 사용할 수 있습니다.

R2021a 이전 릴리스에서는 차원 이름을 지정하려면 출력값의 DimensionNames 속성을 설정하는 방법밖에 없었습니다.

스칼라 구조체를 처리하는 방법을 나타내는 표시자로, "AsArray"와 함께 false, true, 0 또는 1이 쉼표로 구분되어 지정됩니다.

true

struct2tableS를 1개의 행과 n개의 변수를 가진 테이블로 변환합니다. 변수의 크기는 다를 수 있습니다.

false

struct2table은 필드 n개가 포함된 스칼라 구조체형 배열을 m×n 테이블로 변환합니다. 각 필드에는 m개 행이 있어야 합니다. 이는 디폴트 동작입니다.

출력 인수

모두 축소

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

확장 기능

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

버전 내역

R2013b에 개발됨