이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

table

다양한 유형을 포함할 수 있는 명명된 변수로 구성된 table형 배열

설명

table형 배열은 텍스트 파일의 열이나 스프레드 시트의 열과 같은, 열 방향의 데이터 또는 테이블 형식의 데이터를 저장합니다. 테이블은 하나의 변수에 한 무리의 열 방향 데이터를 저장합니다. 테이블 변수는 모든 변수의 행 개수가 동일한 경우에 한해 서로 다른 데이터형과 크기를 가질 수 있습니다. summary 함수를 사용하여 테이블에 대한 정보를 가져옵니다.

테이블의 요소를 참조하려면 소괄호 ()를 사용하여 하위 테이블을 반환하거나 중괄호 {}를 사용하여 내용을 추출하십시오. 이름을 사용하여 변수와 행을 참조할 수 있습니다. 번호와 이름을 사용하는 인덱싱에 대한 자세한 내용은 테이블 데이터에 액세스하기 항목을 참조하십시오.

생성

Import Tool 또는 readtable 함수를 사용하여 파일의 데이터를 테이블로 읽어올 수 있습니다. 또는 아래 설명된 table 함수를 사용하여 기존 작업 공간 변수로부터 테이블을 만듭니다.

변수에 공백을 허용하고 해당 값을 나중에 채우는 테이블을 만들 수도 있습니다. 변수에 사전할당된 공백이 있는 테이블을 만들려면 아래에 설명된 대로 'Size'를 첫 번째 입력 인수로 지정하여 table 함수를 사용하십시오.

설명

예제

T = table(var1,...,varN)은 입력 변수 var1,...,varN에서 테이블을 만듭니다. 변수는 크기와 데이터형이 서로 다를 수 있지만, 모든 변수는 행 개수가 동일해야 합니다.

예제

T = table('Size',sz,'VariableTypes',varTypes)는 테이블을 만들고 지정하는 데이터형의 변수에 공백을 사전할당합니다. sz는 요소를 2개 가진 숫자형 배열이며, 여기서 sz[1]은 행 개수를 지정하고, sz[2]는 변수 개수를 지정합니다. varTypes는 데이터형을 지정하는 문자형 벡터로 구성된 셀형 배열입니다.

예제

T = table(___,'VariableNames',varNames)는 출력 테이블의 변수 이름을 지정합니다. 이 구문은 이 함수의 다른 구문에 나와 있는 입력 인수와 함께 사용할 수 있습니다.

예제

T = table(___,'RowNames',rowNames)는 출력 테이블의 행 이름을 지정합니다. 이 구문은 위에 열거된 구문 중 하나의 입력 인수와 함께 사용할 수 있습니다.

예제

T = table은 빈 0x0 테이블을 만듭니다.

입력 인수

모두 확장

입력 변수로, 행 개수가 같은 배열로 지정됩니다. 입력 변수는 크기와 데이터형이 서로 다를 수 있습니다.

일반적인 입력 변수는 숫자형 배열, 논리형 배열, 문자형 배열, 구조체형 배열, 또는 셀형 배열입니다. 입력 변수는 배열인 객체일 수도 있습니다. 이러한 배열은 var(index1,...,indexN) 형식의 인덱싱을 지원해야 합니다. 여기서 index1은 변수 var의 행에 대응하는 숫자형 벡터 또는 논리형 벡터입니다. 또한, 이 배열은 dim 인수와 함께 vertcat 메서드와 size 메서드를 모두 구현해야 합니다.

예: table([1:4]',ones(4,3,2),eye(4,2))는 서로 크기가 다른, 4개의 행을 갖는 변수들로 테이블을 만듭니다.

예: table([1:3]',{'one';'two';'three'},categorical({'A';'B';'C'}))는 서로 데이터형이 다른, 3개의 행을 갖는 변수들로 테이블을 만듭니다.

사전할당된 테이블의 크기로, 요소를 2개 가진 숫자형 벡터로 지정됩니다. sz의 첫 번째 요소는 행 개수를 지정하고, 두 번째 요소는 테이블 변수 개수를 지정합니다.

행 없이 변수만 생성하려면 sz의 첫 번째 요소로 0을 지정하십시오.

예: T = table('Size',[50 3],'VariableTypes',{'string','double','datetime'})은 string형 배열, double형 배열, datetime형 배열이 포함된 테이블에 행 50개를 사전할당합니다.

예: T = table('Size',[0 4],'VariableTypes',varTypes)는 행 0개와 변수 4개를 지정합니다.

사전할당된 변수의 데이터형으로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. varTypes로 지정된 데이터형 개수는 sz의 두 번째 요소로 지정된 변수 개수와 같아야 합니다.

varTypes에는 다음 표에 표시된 이름을 비롯해 모든 데이터형의 이름이 포함될 수 있습니다.

데이터형 이름

각 요소의 초기값

'double''single'

배정밀도 또는 단정밀도 0

'doublenan', 'doubleNaN''singlenan', 'singleNaN'

배정밀도 또는 단정밀도 NaN

'int8''int16''int32''int64'

부호 있는 8비트, 16비트, 32비트 또는 64비트 정수 0

'uint8''uint16''uint32''uint64'

부호 없는 8비트, 16비트, 32비트 또는 64비트 정수 0

'logical'

0(false)

'categorical'

<undefined> categorical형 값

'datetime'

NaT datetime형 값

'duration'

0초, duration형 값

'calendarDuration'

0일, calendarDuration형 값

'string'

""(문자 없는 1x1 string형)

'cellstr'

{''}(0x0 문자형 배열을 갖는 셀)

'cell'

{[]}(0x0 double형 배열을 갖는 셀)

'struct'

필드 없는 스칼라 구조체

'table'

변수 없는 테이블

그 밖의 다른 데이터형의 경우, 초기값은 해당 데이터형 또는 클래스가 배열의 할당되지 않은 요소를 '채우는' 데 사용하는 값이 됩니다.

'char'을 데이터형으로 지정하면 table은 해당 변수를 문자형 배열이 아니라 문자형 벡터로 구성된 셀형 배열로 사전할당합니다. 따라서 문자형 배열인 테이블 또는 타임테이블 변수는 생성하지 않는 것이 가장 좋습니다. 테이블이나 타임테이블에서 텍스트 데이터를 사용하는 경우 string형 배열이나 categorical형 배열을 사용해 보십시오.

출력 테이블의 변수 이름으로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. varNames의 이름 개수는 변수의 개수와 같아야 합니다.

출력 테이블의 행 이름으로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. rowNames의 이름 개수는 행 개수와 같아야 합니다.

예: T = table([10;20;30],{'M';'F';'F'},'VariableNames',{'Age','Gender'},'RowNames',{'P1','P2','P3'})은 지정한 변수 이름과 행 이름을 가진 테이블을 생성합니다.

속성

모두 확장

테이블 메타데이터 속성에 액세스

테이블에는 테이블과 테이블 변수를 설명하는 메타데이터 속성이 포함됩니다. 구문 tableName.Properties.PropertyName을 사용하여 이러한 속성에 액세스합니다. 여기서 PropertyName은 속성 이름입니다. 예를 들어, 구문 T.Properties.VariableNames를 사용하여 테이블 T에 포함된 변수 이름에 액세스할 수 있습니다.

구문 tableName.Properties를 사용하여 모든 메타데이터 속성의 요약을 반환할 수 있습니다.

점 구문을 사용하여 직접 테이블 데이터에 액세스할 수 있기 때문에 테이블에서는 Properties 속성을 통해 메타데이터에 액세스할 수 있습니다. 예를 들어, 테이블 TVar1이라는 변수가 있으면 구문 T.Var1을 사용하여 변수를 배열로서 액세스할 수 있습니다.

테이블 메타데이터

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

2개의 차원 이름을 사용하여 테이블 데이터에 액세스할 수 있습니다. 테이블에 행 이름이 있는 경우, 점 구문과 첫 번째 차원 이름을 사용하면 행 이름을 벡터로서 액세스할 수 있습니다. 점 구문과 두 번째 차원 이름을 사용하면 {:,:} 구문을 사용하여 타임테이블의 요소를 참조한 것처럼 모든 변수의 데이터가 하나의 배열로 결합됩니다.

string형 배열을 사용하여 이 속성을 지정하면 이 속성은 문자형 벡터로 구성된 셀형 배열로 변환되어 저장됩니다.

예제

테이블을 생성하고 테이블의 차원 이름을 표시합니다. 점 구문과 함께 차원 이름을 사용하여 행 이름과 데이터에 액세스할 수 있습니다.

load patients
T = table(Age,Height,Weight,Systolic,Diastolic, ...
          'RowNames',LastName);
T.Properties.DimensionNames
ans = 1x2 cell array
    {'Row'}    {'Variables'}

첫 번째 차원 이름을 사용하여 행 이름에 액세스합니다. 처음 5개 이름을 표시합니다.

T.Row(1:5)
ans = 5x1 cell array
    {'Smith'   }
    {'Johnson' }
    {'Williams'}
    {'Jones'   }
    {'Brown'   }

두 번째 차원 이름을 사용하여 데이터에 액세스합니다. 이 구문은 T{:,:}와 동일합니다.

T.Variables
ans = 100×5

    38    71   176   124    93
    43    69   163   109    77
    38    64   131   125    83
    40    67   133   117    75
    49    64   119   122    80
    46    68   142   121    70
    33    64   142   130    88
    40    68   180   115    82
    28    68   183   115    78
    31    66   132   118    86
      ⋮

Properties.DimensionNames 속성을 사용하여 테이블의 차원 이름을 수정합니다. 차원 이름을 수정하면 구문 T.PatientT.Data를 사용하여 각각 행 시간값과 데이터에 액세스할 수 있습니다.

T.Properties.DimensionNames = {'Patient','Data'};
T.Properties
ans = 
  TableProperties with properties:

             Description: ''
                UserData: []
          DimensionNames: {'Patient'  'Data'}
           VariableNames: {'Age'  'Height'  'Weight'  'Systolic'  'Diastolic'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowNames: {100x1 cell}
        CustomProperties: No custom properties are set.
      Use addprop and rmprop to modify CustomProperties.

행 이름으로, 비어 있지 않은 고유한 요소를 갖는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. RowNames가 비어 있지 않은 경우 행 이름의 개수는 테이블의 행 개수와 같아야 합니다. MATLAB®은 행 이름에서 선행 공백 또는 후행 공백을 모두 제거합니다.

행 이름은 테이블을 볼 때 확인할 수 있습니다. 또한, 소괄호 또는 중괄호 안에 행 이름을 사용하여 테이블 데이터에 액세스할 수도 있습니다.

행 이름에 액세스할 수 있는 또 다른 방법은 점 구문과 테이블의 첫 번째 차원 이름을 사용하는 것입니다.

string형 배열을 사용하여 이 속성을 지정하면 이 속성은 문자형 벡터로 구성된 셀형 배열로 변환되어 저장됩니다.

예제

테이블을 만듭니다. 그런 다음, 행 이름을 추가하고 해당 이름을 사용하여 행에 액세스합니다.

load patients
T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);

Properties.RowNames 속성을 사용하여 행 이름을 추가합니다. 기본적으로 테이블에는 행 이름이 없지만 언제든지 행 이름을 추가할 수 있습니다.

T.Properties.RowNames = LastName;
head(T,4)
ans=4×7 table
                 Gender     Age    Height    Weight    Smoker    Systolic    Diastolic
                ________    ___    ______    ______    ______    ________    _________

    Smith       'Male'      38       71       176      true        124          93    
    Johnson     'Male'      43       69       163      false       109          77    
    Williams    'Female'    38       64       131      false       125          83    
    Jones       'Female'    40       67       133      false       117          75    

행 이름에 액세스할 수 있는 또 다른 방법은 점 구문과 테이블의 첫 번째 차원 이름을 사용하는 것입니다. 처음 5개 행 이름을 표시합니다.

T.Properties.DimensionNames
ans = 1x2 cell array
    {'Row'}    {'Variables'}

T.Row(1:5)
ans = 5x1 cell array
    {'Smith'   }
    {'Johnson' }
    {'Williams'}
    {'Jones'   }
    {'Brown'   }

행 이름을 사용하여 테이블의 요소를 참조합니다.

T({'Smith','Williams'},:)
ans=2×7 table
                 Gender     Age    Height    Weight    Smoker    Systolic    Diastolic
                ________    ___    ______    ______    ______    ________    _________

    Smith       'Male'      38       71       176      true        124          93    
    Williams    'Female'    38       64       131      false       125          83    

테이블 설명으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 이 설명은 summary 함수를 사용할 때 확인할 수 있습니다.

string형 스칼라를 사용하여 이 속성을 지정하면 이 속성은 문자형 벡터로 변환되어 저장됩니다.

예제

테이블을 만듭니다. 테이블 설명을 수정합니다. 결과의 요약을 표시합니다.

load patients
T = table(Gender,Age,Height,Weight);
T.Properties.Description = 'Simulated patient data';
summary(T)
Description:  Simulated patient data

Variables:

    Gender: 100x1 cell array of character vectors

    Age: 100x1 double

        Values:

            Min        25  
            Median     39  
            Max        50  

    Height: 100x1 double

        Values:

            Min          60   
            Median       67   
            Max          72   

    Weight: 100x1 double

        Values:

            Min          111  
            Median     142.5  
            Max          202  

추가 테이블 정보로, 배열로 지정됩니다. 이 속성을 사용하면 테이블에 어떠한 유형의 데이터도 추가할 수 있습니다.

예제

테이블을 만듭니다. 익명 함수를 테이블과 연관된 사용자 데이터로서 추가합니다.

load patients
T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);
formula = @(x) x.^2;
T.Properties.UserData = formula;
T.Properties
ans = 
  TableProperties with properties:

             Description: ''
                UserData: @(x)x.^2
          DimensionNames: {'Row'  'Variables'}
           VariableNames: {1x7 cell}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowNames: {}
        CustomProperties: No custom properties are set.
      Use addprop and rmprop to modify CustomProperties.

변수 메타데이터

변수 이름으로, 비어 있지 않은 고유한 요소를 갖는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. 변수 이름은 유효한 MATLAB 식별자여야 합니다. 함수 isvarname을 사용하여 유효한 변수 이름을 확인할 수 있습니다. MATLAB은 변수 이름에서 선행 공백 또는 후행 공백을 모두 제거합니다. 이름 개수는 변수의 개수와 같아야 합니다.

변수 이름을 지정하지 않거나 유효하지 않은 식별자를 지정하면 MATLAB은 'Var1' ... 'VarN' 형식의 이름을 지정합니다. 여기서 N은 변수 개수입니다.

변수 이름은 테이블을 볼 때, 그리고 summary 함수를 사용할 때 확인할 수 있습니다. 또한, 소괄호 또는 중괄호 안에 변수 이름을 사용하거나 점 인덱싱과 함께 변수 이름을 사용하여 테이블 데이터에 액세스할 수도 있습니다.

string형 배열을 사용하여 이 속성을 지정하면 이 속성은 문자형 벡터로 구성된 셀형 배열로 변환되어 저장됩니다.

예제

디폴트 변수 이름을 가진 테이블을 만듭니다. 그런 다음, Properties.VariableNames 속성을 사용하여 이름을 수정합니다.

T = table({'M';'M';'F';'F';'F'},[38;43;38;40;49], ...
          [71;69;64;67;64],[176;163;131;133;119])
T=5×4 table
    Var1    Var2    Var3    Var4
    ____    ____    ____    ____

    'M'      38      71     176 
    'M'      43      69     163 
    'F'      38      64     131 
    'F'      40      67     133 
    'F'      49      64     119 

T.Properties.VariableNames = {'Gender','Age','Height','Weight'}
T=5×4 table
    Gender    Age    Height    Weight
    ______    ___    ______    ______

     'M'      38       71       176  
     'M'      43       69       163  
     'F'      38       64       131  
     'F'      40       67       133  
     'F'      49       64       119  

변수를 표시하고 수정하는 기본적인 방법은 점 구문을 사용하여 이름으로 변수에 액세스하는 것입니다.

T.Age
ans = 5×1

    38
    43
    38
    40
    49

T.Age(1) = 53
T=5×4 table
    Gender    Age    Height    Weight
    ______    ___    ______    ______

     'M'      53       71       176  
     'M'      43       69       163  
     'F'      38       64       131  
     'F'      40       67       133  
     'F'      49       64       119  

변수 설명으로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. 이 속성은 빈 셀형 배열(디폴트 값)일 수 있습니다. 배열이 비어 있지 않은 경우, 여기에는 변수 개수만큼의 요소가 포함되어야 합니다. 설명이 없는 변수에 대해 개별적으로 빈 문자형 벡터 또는 빈 string형을 지정할 수 있습니다.

변수 설명은 summary 함수를 사용할 때 확인할 수 있습니다.

string형 배열을 사용하여 이 속성을 지정하면 이 속성은 문자형 벡터로 구성된 셀형 배열로 변환되어 저장됩니다.

예제

테이블을 만듭니다. 변수 설명을 수정합니다. 결과의 요약을 표시합니다.

load patients
T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);
T.Properties.VariableDescriptions = {'','','','', ...
                                     'Has the patient ever been a smoker', ...
                                     'Systolic Pressure','Diastolic Pressure'};
summary(T)
Variables:

    Gender: 100x1 cell array of character vectors

    Age: 100x1 double

        Values:

            Min        25  
            Median     39  
            Max        50  

    Height: 100x1 double

        Values:

            Min          60   
            Median       67   
            Max          72   

    Weight: 100x1 double

        Values:

            Min          111  
            Median     142.5  
            Max          202  

    Smoker: 100x1 logical

        Properties:
            Description:  Has the patient ever been a smoker
        Values:

            True        34   
            False       66   

    Systolic: 100x1 double

        Properties:
            Description:  Systolic Pressure
        Values:

            Min          109    
            Median       122    
            Max          138    

    Diastolic: 100x1 double

        Properties:
            Description:  Diastolic Pressure
        Values:

            Min            68    
            Median       81.5    
            Max            99    

변수 단위로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. 이 속성은 빈 셀형 배열(디폴트 값)일 수 있습니다. 배열이 비어 있지 않은 경우, 여기에는 변수 개수만큼의 요소가 포함되어야 합니다. 단위가 없는 변수에 대해 개별적으로 빈 문자형 벡터 또는 빈 string형을 지정할 수 있습니다.

변수 단위는 summary 함수를 사용할 때 확인할 수 있습니다.

string형 배열을 사용하여 이 속성을 지정하면 이 속성은 문자형 벡터로 구성된 셀형 배열로 변환되어 저장됩니다.

예제

테이블을 만듭니다. 변수 단위를 수정합니다. 결과의 요약을 표시합니다.

load patients
T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);
T.Properties.VariableUnits = {'','Yrs','In','Lbs','','mm Hg','mm Hg'};
summary(T)
Variables:

    Gender: 100x1 cell array of character vectors

    Age: 100x1 double

        Properties:
            Units:  Yrs
        Values:

            Min        25  
            Median     39  
            Max        50  

    Height: 100x1 double

        Properties:
            Units:  In
        Values:

            Min          60   
            Median       67   
            Max          72   

    Weight: 100x1 double

        Properties:
            Units:  Lbs
        Values:

            Min          111  
            Median     142.5  
            Max          202  

    Smoker: 100x1 logical

        Values:

            True        34   
            False       66   

    Systolic: 100x1 double

        Properties:
            Units:  mm Hg
        Values:

            Min          109    
            Median       122    
            Max          138    

    Diastolic: 100x1 double

        Properties:
            Units:  mm Hg
        Values:

            Min            68    
            Median       81.5    
            Max            99    

사용자 지정 메타데이터

테이블과 테이블 변수의 사용자 지정 메타데이터로, CustomProperties 객체로 지정됩니다.

CustomProperties 객체는 테이블에 추가할 수 있는 사용자 지정 메타데이터의 컨테이너입니다. 기본적으로 CustomProperties는 0개 속성을 가집니다. CustomProperties에 추가하는 각 속성은 테이블 메타데이터 또는 변수 메타데이터를 포함할 수 있습니다. 속성이 변수 메타데이터를 포함하는 경우, 그 값은 배열이 되어야 하고 배열의 요소 개수는 테이블 변수의 개수와 같아야 합니다.

  • 테이블에 사용자 지정 메타데이터에 대한 속성을 추가하려면 addprop 함수를 사용하십시오.

  • 사용자 지정 메타데이터에 액세스하거나 이를 수정하려면 구문 tableName.Properties.CustomProperties.PropertyName을 사용하십시오. 이 구문에서 PropertyNameaddprop를 사용하여 해당 속성을 추가할 때 선택한 이름입니다.

  • 속성을 제거하려면 rmprop 함수를 사용하십시오.

참고: 사용자 지정 메타데이터에 대한 속성 addproprmprop를 사용하여 추가 또는 제거할 수 있습니다. tableName.Properties 객체의 속성은 추가 또는 제거할 수 없습니다.

예제

테이블을 만듭니다.

load patients
T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);

테이블과 테이블 변수에 대한 사용자 지정 메타데이터를 포함할 수 있는 속성을 추가합니다. 이 예제에서 메타데이터는 기기의 이름, 변수를 플로팅할지 여부를 나타내는 truefalse 값, 출력 파일의 이름입니다. 속성을 추가하려면 addprop 함수를 사용하십시오.

T = addprop(T,{'Instrument','ToPlot','OutputFile'},{'variable','variable','table'});
T.Properties
ans = 
  TableProperties with properties:

             Description: ''
                UserData: []
          DimensionNames: {'Row'  'Variables'}
           VariableNames: {1x7 cell}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowNames: {}

   Custom Properties (access using t.Properties.CustomProperties.<name>):
              OutputFile: []
              Instrument: []
                  ToPlot: []

점 구문을 사용하여 사용자 지정 메타데이터에 값을 할당합니다. 사용자 지정 메타데이터에 텍스트 값으로 구성된 배열을 할당할 때는 문자형 벡터로 구성된 셀형 배열이 아닌 string형 배열을 사용하는 것이 가장 좋습니다. CustomProperties에 문자형 벡터로 구성된 셀형 배열인 속성이 있는 경우, 나중에 텍스트가 아닌 값을 셀형 배열의 요소로 할당하지 못하도록 하는 방법은 존재하지 않습니다.

T.Properties.CustomProperties.Instrument = ["","","height rod","scale","","blood pressure cuff","blood pressure cuff"];
T.Properties.CustomProperties.ToPlot = [false false true true false true true];
T.Properties.CustomProperties.OutputFile = 'patientData.csv';
T.Properties
ans = 
  TableProperties with properties:

             Description: ''
                UserData: []
          DimensionNames: {'Row'  'Variables'}
           VariableNames: {1x7 cell}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowNames: {}

   Custom Properties (access using t.Properties.CustomProperties.<name>):
              OutputFile: 'patientData.csv'
              Instrument: [1x7 string]
                  ToPlot: [0 0 1 1 0 1 1]

T에서 OutputFile 속성을 제거합니다.

T = rmprop(T,'OutputFile');
T.Properties
ans = 
  TableProperties with properties:

             Description: ''
                UserData: []
          DimensionNames: {'Row'  'Variables'}
           VariableNames: {1x7 cell}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowNames: {}

   Custom Properties (access using t.Properties.CustomProperties.<name>):
              Instrument: [1x7 string]
                  ToPlot: [0 0 1 1 0 1 1]

예제

모두 축소

테이블에 환자 그룹에 대한 데이터를 저장합니다. 동일한 테이블에서 계산을 수행하고 결과를 저장할 수 있습니다. 또한 테이블에 주석을 지정하여 작업과 테이블 변수를 설명할 수도 있습니다.

먼저, 환자 데이터를 포함하는 작업 공간 변수를 만듭니다. 각 변수는 어떤 데이터형이든 될 수 있지만 행 개수는 동일해야 합니다.

LastName = {'Sanchez';'Johnson';'Li';'Diaz';'Brown'};
Age = [38;43;38;40;49];
Smoker = logical([1;0;1;0;1]);
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

테이블 T를 작업 공간 변수에 대한 컨테이너로 만듭니다. table 함수는 작업 공간 변수 이름을 T의 테이블 변수 이름으로 사용합니다. 테이블 변수는 열을 여러 개 가질 수 있습니다. 예를 들어, T의 BloodPressure 변수는 5x2 배열입니다.

T = table(LastName,Age,Smoker,Height,Weight,BloodPressure)
T=5×6 table
    LastName     Age    Smoker    Height    Weight    BloodPressure
    _________    ___    ______    ______    ______    _____________

    'Sanchez'    38     true        71       176       124     93  
    'Johnson'    43     false       69       163       109     77  
    'Li'         38     true        64       131       125     83  
    'Diaz'       40     false       67       133       117     75  
    'Brown'      49     true        64       119       122     80  

점 인덱싱을 사용하여 테이블 변수에 액세스할 수 있습니다. 예를 들어, T.Height의 값을 사용하여 환자의 평균 키를 계산해 보겠습니다.

meanHeight = mean(T.Height)
meanHeight = 67

BMI(체질량지수)를 계산한 후 새 테이블 변수로 추가합니다. 점 구문을 사용하여 테이블 변수 추가 및 이름 지정 작업을 한 번에 수행할 수 있습니다.

T.BMI = (T.Weight*0.453592)./(T.Height*0.0254).^2
T=5×7 table
    LastName     Age    Smoker    Height    Weight    BloodPressure     BMI  
    _________    ___    ______    ______    ______    _____________    ______

    'Sanchez'    38     true        71       176       124     93      24.547
    'Johnson'    43     false       69       163       109     77      24.071
    'Li'         38     true        64       131       125     83      22.486
    'Diaz'       40     false       67       133       117     75      20.831
    'Brown'      49     true        64       119       122     80      20.426

테이블에 BMI 계산에 대한 설명을 주석으로 지정합니다. T.Properties를 통해 액세스한 메타데이터를 사용하여 T와 해당 변수에 주석을 지정할 수 있습니다.

T.Properties.Description = 'Patient data, including body mass index (BMI) calculated using Height and Weight';
T.Properties
ans = 
  TableProperties with properties:

             Description: 'Patient data, including body mass index (BMI) calculated using Height and Weight'
                UserData: []
          DimensionNames: {'Row'  'Variables'}
           VariableNames: {1x7 cell}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowNames: {}
        CustomProperties: No custom properties are set.
      Use addprop and rmprop to modify CustomProperties.

테이블의 두 번째 차원 이름을 사용하여 테이블의 모든 데이터를 행렬로서 액세스합니다.

환자 그룹에 대한 데이터 중 처음 5개 행이 포함된 테이블을 만듭니다.

Age = [38;43;38;40;49];
Smoker = logical([1;0;1;0;1]);
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

T = table(Age,Smoker,Height,Weight,BloodPressure)
T=5×5 table
    Age    Smoker    Height    Weight    BloodPressure
    ___    ______    ______    ______    _____________

    38     true        71       176       124     93  
    43     false       69       163       109     77  
    38     true        64       131       125     83  
    40     false       67       133       117     75  
    49     true        64       119       122     80  

DimensionNames 속성을 사용하여 테이블 차원 이름을 표시합니다. 두 번째 차원의 디폴트 이름은 Variables입니다.

T.Properties.DimensionNames
ans = 1x2 cell array
    {'Row'}    {'Variables'}

구문 T.Variables를 사용하여 테이블 데이터를 행렬로서 액세스합니다. 이 구문은 중괄호 구문 T{:,:}를 사용하여 모든 내용에 액세스하는 것과 동일합니다. 테이블 데이터를 하나의 행렬로 결합할 수 없는 경우, 오류 메시지가 나타납니다.

T.Variables
ans = 5×6

    38     1    71   176   124    93
    43     0    69   163   109    77
    38     1    64   131   125    83
    40     0    67   133   117    75
    49     1    64   119   122    80

두 번째 차원의 이름을 바꿉니다. 이름을 변경한 경우, 새 이름을 사용하여 데이터에 액세스할 수 있습니다.

T.Properties.DimensionNames{2} = 'PatientData';
T.PatientData
ans = 5×6

    38     1    71   176   124    93
    43     0    69   163   109    77
    38     1    64   131   125    83
    40     0    67   133   117    75
    49     1    64   119   122    80

테이블 크기와 변수의 데이터형을 지정하여 테이블을 사전할당합니다. table 함수는 지정하는 데이터형에 적합한 디폴트 값으로 변수를 채웁니다. 또한 변수에 디폴트 이름을 지정하지만, 사용자가 직접 변수 이름을 할당할 수도 있습니다. 사전할당에서는 나중에 테이블에 데이터를 추가할 수 있도록 공간을 제공합니다.

sz = [4 3];
varTypes = {'double','datetime','string'};
T = table('Size',sz,'VariableTypes',varTypes)
T=4×3 table
    Var1    Var2      Var3   
    ____    ____    _________

     0      NaT     <missing>
     0      NaT     <missing>
     0      NaT     <missing>
     0      NaT     <missing>

변수의 이름을 지정하려면 'VariableNames' 이름-값 쌍의 인수를 사용하십시오.

varNames = {'Temperature','Time','Station'};
T2 = table('Size',sz,'VariableTypes',varTypes,'VariableNames',varNames)
T2=4×3 table
    Temperature    Time     Station 
    ___________    ____    _________

         0         NaT     <missing>
         0         NaT     <missing>
         0         NaT     <missing>
         0         NaT     <missing>

데이터 행을 T2의 처음 2개 행에 추가합니다. 사전할당 기법은 코드가 한 번에 1개 또는 적은 수의 데이터 행을 추가할 때 유용할 수 있습니다. 행을 추가할 때마다 일일이 테이블을 늘리는 대신 데이터를 추가할 수 있는 공간이 이미 있는 테이블 변수를 채울 수 있습니다.

T2(1,:) = {75,datetime('now'),"S1"};
T2(2,:) = {68,datetime('now')+1,"S2"}
T2=4×3 table
    Temperature            Time             Station 
    ___________    ____________________    _________

        75         08-Feb-2019 17:05:54    "S1"     
        68         09-Feb-2019 17:05:54    "S2"     
         0                          NaT    <missing>
         0                          NaT    <missing>

한 줄의 데이터 값을 셀형 배열에 담을 수 있습니다. 셀형 배열에서 행에 값을 할당하면 셀형 배열의 요소가 테이블 행에 할당됩니다.

배열에서 테이블을 만듭니다. 테이블 변수 이름을 지정하려면 'VariableNames' 이름-값 쌍의 인수를 사용하십시오. 예를 들어, 다른 입력 인수가 작업 공간 변수가 아닌 경우 'VariableNames'를 사용하여 이름을 지정할 수 있습니다.

T = table(categorical({'M';'F';'M'}),[45;32;34],...
          {'NY';'CA';'MA'},logical([1;0;0]),...
          'VariableNames',{'Gender','Age','State','Vote'})
T=3×4 table
    Gender    Age    State    Vote 
    ______    ___    _____    _____

      M       45     'NY'     true 
      F       32     'CA'     false
      M       34     'MA'     false

주 이름을 행 이름으로 갖는 테이블을 만듭니다. table 함수를 사용할 때에는 'VariableNames' 이름-값 쌍과 'RowNames' 이름-값 쌍을 모두 지정할 수 있습니다.

T = table(categorical({'M';'F';'M'}),[45;32;34],logical([1;0;0]),...
          'VariableNames',{'Gender','Age','Vote'},...
          'RowNames',{'NY';'CA';'MA'})
T=3×3 table
          Gender    Age    Vote 
          ______    ___    _____

    NY      M       45     true 
    CA      F       32     false
    MA      M       34     false

테이블의 행 이름을 지정합니다. 테이블에 반드시 행 이름이 있어야 하는 것은 아니지만, 행 이름을 지정하면 행 이름으로 테이블의 요소를 참조할 수 있습니다. 또한 테이블의 첫 번째 차원 이름을 사용하면 행 이름 집합에 액세스할 수 있습니다.

환자 데이터를 포함하는 배열을 만듭니다.

LastName = {'Sanchez';'Johnson';'Lee';'Diaz';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];

배열을 포함하는 테이블을 만듭니다. LastName을 테이블 행 이름의 소스로 지정합니다. 테이블에는 3개의 변수만 있습니다. 행 이름은 테이블 변수가 아니라 테이블 속성입니다.

T = table(Age,Weight,Height,'RowNames',LastName)
T=5×3 table
               Age    Weight    Height
               ___    ______    ______

    Sanchez    38      176        71  
    Johnson    43      163        69  
    Lee        38      131        64  
    Diaz       40      133        67  
    Brown      49      119        64  

행에 행 이름이 있기 때문에 이름으로 T에 있는 행의 요소를 참조할 수 있습니다.

T('Lee',:)
ans=1×3 table
           Age    Weight    Height
           ___    ______    ______

    Lee    38      131        64  

여러 행을 지정하려면 셀형 배열을 사용하십시오.

T({'Lee','Brown'},:)
ans=2×3 table
             Age    Weight    Height
             ___    ______    ______

    Lee      38      131        64  
    Brown    49      119        64  

T의 모든 행 이름을 셀형 배열로서 액세스하려면 구문 T.Row를 사용하십시오. 기본적으로 Row는 테이블의 첫 번째 차원 이름입니다.

T.Row
ans = 5x1 cell array
    {'Sanchez'}
    {'Johnson'}
    {'Lee'    }
    {'Diaz'   }
    {'Brown'  }

첫 번째 차원 이름을 변경합니다. 이름을 변경한 경우, 새 이름을 사용하여 행 이름에 액세스할 수 있습니다.

T.Properties.DimensionNames{1} = 'LastNames';
T.LastNames
ans = 5x1 cell array
    {'Sanchez'}
    {'Johnson'}
    {'Lee'    }
    {'Diaz'   }
    {'Brown'  }

R2017a부터는 큰따옴표를 사용하여 string형을 생성하고 string형 배열을 테이블 변수로 추가할 수 있습니다.

FlightNum = [1261;547;3489];
Customer = ["Jones";"Brown";"Smith"];
Date = datetime(2016,12,20:22)';
Rating = categorical(["Good";"Poor";"Fair"]);
Comment = ["Flight left on time, not crowded";...
           "Late departure, ran out of dinner options";...
           "Late, but only by half an hour. Otherwise fine."];
T = table(FlightNum,Customer,Date,Rating,Comment)
T=3×5 table
    FlightNum    Customer       Date        Rating                         Comment                     
    _________    ________    ___________    ______    _________________________________________________

      1261       "Jones"     20-Dec-2016     Good     "Flight left on time, not crowded"               
       547       "Brown"     21-Dec-2016     Poor     "Late departure, ran out of dinner options"      
      3489       "Smith"     22-Dec-2016     Fair     "Late, but only by half an hour. Otherwise fine."

string형 배열의 텍스트를 행 이름으로 사용하기 위해 string형 배열을 문자형 벡터로 구성된 셀형 배열로 변환합니다. 그런 다음 행 이름을 가진 테이블을 만듭니다.

Customer = cellstr(Customer);
T = table(FlightNum,Date,Rating,Comment,'RowNames',Customer)
T=3×4 table
             FlightNum       Date        Rating                         Comment                     
             _________    ___________    ______    _________________________________________________

    Jones      1261       20-Dec-2016     Good     "Flight left on time, not crowded"               
    Brown       547       21-Dec-2016     Poor     "Late departure, ran out of dinner options"      
    Smith      3489       22-Dec-2016     Fair     "Late, but only by half an hour. Otherwise fine."

서로 다른 날짜에 기록된 세 곳의 총 적설량을 포함하는 작업 공간 변수를 만듭니다. 이러한 변수는 행 벡터입니다.

Date = {'12/25/11','1/2/12','1/23/12','2/7/12','2/15/12'};
location1 = [20 5 13 0 17];
location2 = [18 9 21 5 12];
location3 = [26 10 16 3 15];

이러한 변수로 테이블을 만드는 한 가지 방법은 table 함수를 구문 T = table(Date',location1',location2',location3')으로 호출하는 것입니다. 작업 공간 변수가 행 벡터이므로, 이를 전치하여 테이블에 열 방향 데이터로 넣어야 합니다. 따라서 입력 인수는 단순한 변수가 아니라 표현식입니다. 그 결과, table은 디폴트 변수 이름 Var1, Var2, Var3, Var4를 가지는 T를 만듭니다. T를 만든 후 T.Properties.VariableNames에 더 의미 있는 이름을 할당할 수 있습니다. 그러나, 빈 테이블을 만든 다음 새 이름으로 한 번에 하나씩 변수를 추가하는 것이 더 편리할 수도 있습니다.

빈 테이블을 만듭니다. 작업 공간 변수를 전치한 후 테이블에 열 벡터로 추가합니다. 각 작업 공간 변수를 T에 할당하는 과정의 일부로, 테이블 변수에 의미 있는 이름을 제공합니다.

T = table;
T.Date = Date';
T.Natick = location1';
T.Boston = location2';
T.Worcester = location3'
T=5×4 table
       Date       Natick    Boston    Worcester
    __________    ______    ______    _________

    '12/25/11'      20        18         26    
    '1/2/12'         5         9         10    
    '1/23/12'       13        21         16    
    '2/7/12'         0         5          3    
    '2/15/12'       17        12         15    

제한 사항

  • 입력 이름 'Size', 'VariableTypes', 'VariableNames''RowNames'에는 작은따옴표를 사용하십시오. 가변 입력값과 혼동되지 않도록 이 이름들에는 큰따옴표로 묶인 string형 스칼라(예: "Size")를 사용하지 마십시오.

  • 테이블을 받거나 반환하는 함수 목록은 테이블 항목을 참조하십시오.

확장 기능

R2013b에 개발됨