Main Content

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

table

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

설명

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

테이블 형식 데이터에 타임스탬프가 포함된 경우에는 timetable을 사용하여 데이터를 저장하고 분석해 보십시오.

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

생성

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

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

설명

예제

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

입력값이 작업 공간 변수인 경우, table은 출력 테이블에서 이름을 변수 이름으로 할당합니다. 그렇지 않으면, table'Var1',...,'VarN' 형식의 변수 이름을 할당하는데, 여기서 N은 변수의 개수입니다.

예제

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

예제

T = table(___,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 입력 인수를 추가로 지정합니다. 예를 들어, 'VariableNames' 이름-값 쌍을 사용하여 변수 이름을 지정할 수 있습니다. 이 구문은 위에 열거된 구문 중 하나의 입력 인수에 사용할 수 있습니다.

예제

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

입력 인수

모두 확장

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

일반적인 입력 변수는 숫자형 배열, 논리형 배열, 문자형 배열, 구조체형 배열, 또는 셀형 배열입니다. 입력 변수는 배열인 객체일 수도 있습니다. 이러한 배열은 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'

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

'cellstr'

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

'cell'

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

'struct'

필드 없는 스칼라 구조체

'table'

변수 없는 테이블

'timetable'

변수는 없고 행 시간값은 NaT인 타임테이블

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

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

이름-값 인수

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

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

예: T = table(Age,Height,Weight,'RowNames',LastName)은 변수 LastName에서 지정한 행 이름을 가진 테이블을 만듭니다.

변수 이름으로, 비어 있지 않은 고유한 요소를 갖는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다.

  • 배열의 이름 개수는 테이블 변수의 개수와 같아야 합니다.

  • table 함수는 또한 테이블의 VariableNames 속성에 변수 이름을 저장합니다.

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

예: T = table(lat,lon,'VariableNames',["Latitude","Longitude"])는 입력 배열 latlon에서 테이블을 생성하고 해당 테이블 변수의 이름을 LatitudeLongitude로 지정합니다.

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

  • 배열의 이름 개수는 행 개수와 같아야 합니다.

  • table 함수는 또한 테이블의 RowNames 속성에 행 이름을 저장합니다.

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

  • table 함수는 행 이름에서 선행 또는 후행 공백 문자를 제거합니다.

예: T = table(Age,Height,Weight,'RowNames',LastName)은 변수 LastName에서 지정한 행 이름을 가진 테이블을 만듭니다.

R2021a 이상

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

  • table 함수는 또한 테이블의 DimensionNames 속성에 차원 이름을 저장합니다.

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

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

예: T = table(Age,Height,Weight,'RowNames',LastName,'DimensionNames',["PatientName","PatientData"])는 첫 번째 차원의 이름은 "PatientName"이고 두 번째 차원의 이름은 "PatientData"인 테이블을 만듭니다.

속성

모두 확장

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

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

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

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

테이블 메타데이터

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

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

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

2개의 차원 이름을 사용하여 테이블 데이터에 액세스할 수 있습니다.

  • 테이블에 행 이름이 있는 경우, 점 구문과 첫 번째 차원 이름을 사용하면 행 이름을 벡터로서 액세스할 수 있습니다.

  • 점 구문과 두 번째 차원 이름을 사용하면 {:,:} 구문을 사용하여 테이블의 요소를 참조한 것처럼 모든 변수의 데이터가 하나의 배열로 결합됩니다.

예제

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

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

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

T.Row(1:5)
ans = 5x1 cell
    {'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가 비어 있지 않은 경우 행 이름의 개수는 테이블의 행 개수와 같아야 합니다.

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

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

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

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

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

예제

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

load patients
T = table(Age,Height,Weight,Smoker,Systolic,Diastolic,SelfAssessedHealthStatus);
T.SelfAssessedHealthStatus = string(SelfAssessedHealthStatus);

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

T.Properties.RowNames = string(LastName);
head(T,5)
                Age    Height    Weight    Smoker    Systolic    Diastolic    SelfAssessedHealthStatus
                ___    ______    ______    ______    ________    _________    ________________________

    Smith       38       71       176      true        124          93              "Excellent"       
    Johnson     43       69       163      false       109          77              "Fair"            
    Williams    38       64       131      false       125          83              "Good"            
    Jones       40       67       133      false       117          75              "Fair"            
    Brown       49       64       119      false       122          80              "Good"            

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

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

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

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

T(["Smith","Brown"],:)
ans=2×7 table
             Age    Height    Weight    Smoker    Systolic    Diastolic    SelfAssessedHealthStatus
             ___    ______    ______    ______    ________    _________    ________________________

    Smith    38       71       176      true        124          93              "Excellent"       
    Brown    49       64       119      false       122          80              "Good"            

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

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

예제

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

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

Variables:

    LastName: 100x1 string

    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(LastName,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: {'LastName'  'Age'  'Height'  'Weight'  'Smoker'  'Systolic'  'Diastolic'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowNames: {}
        CustomProperties: No custom properties are set.
      Use addprop and rmprop to modify CustomProperties.

변수 메타데이터

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

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

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

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

예제

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

T = table(["Smith";"Nguyen";"Williams";"Fernandez";"Brown"],[38;43;38;40;49], ...
          [71;69;64;67;64],[176;163;131;133;119])
T=5×4 table
       Var1        Var2    Var3    Var4
    ___________    ____    ____    ____

    "Smith"         38      71     176 
    "Nguyen"        43      69     163 
    "Williams"      38      64     131 
    "Fernandez"     40      67     133 
    "Brown"         49      64     119 

T.Properties.VariableNames = ["LastName","Age","Height","Weight"]
T=5×4 table
     LastName      Age    Height    Weight
    ___________    ___    ______    ______

    "Smith"        38       71       176  
    "Nguyen"       43       69       163  
    "Williams"     38       64       131  
    "Fernandez"    40       67       133  
    "Brown"        49       64       119  

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

T.Age
ans = 5×1

    38
    43
    38
    40
    49

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

    "Smith"        53       71       176  
    "Nguyen"       43       69       163  
    "Williams"     38       64       131  
    "Fernandez"    40       67       133  
    "Brown"        49       64       119  

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

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

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

예제

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

load patients
T = table(LastName,Age,Height,Weight,Smoker,Systolic,Diastolic);
T.LastName = string(T.LastName);
T.Properties.VariableDescriptions = ["","","","", ...
                                     "Has the patient ever been a smoker", ...
                                     "Systolic Pressure","Diastolic Pressure"];
summary(T)
Variables:

    LastName: 100x1 string

    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(LastName,Age,Height,Weight,Smoker,Systolic,Diastolic);
T.LastName = string(T.LastName);
T.Properties.VariableUnits = ["","Yrs","In","Lbs","","mm Hg","mm Hg"];
summary(T)
Variables:

    LastName: 100x1 string

    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  

연속 변수 또는 이산 변수로서의 상태로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다.

테이블과 타임테이블 모두 이 속성이 있지만, 타임테이블만 이 속성을 사용합니다. 자세한 내용은 timetableVariableContinuity 속성을 참조하십시오.

사용자 지정 메타데이터

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

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

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

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

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

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

예제

테이블을 만듭니다.

load patients
T = table(LastName,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: {'LastName'  'Age'  'Height'  'Weight'  'Smoker'  'Systolic'  'Diastolic'}
    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: {'LastName'  'Age'  'Height'  'Weight'  'Smoker'  'Systolic'  'Diastolic'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowNames: {}

   Custom Properties (access using t.Properties.CustomProperties.<name>):
              OutputFile: 'patientData.csv'
              Instrument: [""    ""    "height rod"    "scale"    ""    "blood pressure cuff"    "blood pressure cuff"]
                  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: {'LastName'  'Age'  'Height'  'Weight'  'Smoker'  'Systolic'  'Diastolic'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowNames: {}

   Custom Properties (access using t.Properties.CustomProperties.<name>):
              Instrument: [""    ""    "height rod"    "scale"    ""    "blood pressure cuff"    "blood pressure cuff"]
                  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 변수는 5×2 배열입니다.

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: {'LastName'  'Age'  'Smoker'  'Height'  'Weight'  'BloodPressure'  'BMI'}
    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
    {'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         14-Aug-2023 23:00:11    "S1"     
        68         15-Aug-2023 23:00:11    "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
    {'Sanchez'}
    {'Johnson'}
    {'Lee'    }
    {'Diaz'   }
    {'Brown'  }

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

T.Properties.DimensionNames{1} = 'LastNames';
T.LastNames
ans = 5x1 cell
    {'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    

R2019b부터는 유효하지 않은 MATLAB® 식별자인 테이블 변수 이름을 지정할 수 있습니다. 이러한 변수 이름은 공백과 비ASCII 문자를 포함할 수 있으며 임의의 문자를 선행 문자로 가질 수 있습니다. 이러한 변수 이름에 액세스할 경우 변수 이름을 따옴표로 묶으십시오.

환자 집합에 대한 데이터를 저장하는 테이블을 만듭니다. 환자의 나이와 흡연 여부로 시작합니다.

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)
T=5×2 table
    Age    Smoker
    ___    ______

    38     true  
    43     false 
    38     true  
    40     false 
    49     true  

변수 이름이 '29-May-2019 Blood Pressure Reading'인 혈압 기록을 추가합니다. 점 구문을 사용하여 변수를 추가하거나 변수에 액세스할 수 있습니다. 변수의 이름이 유효한 MATLAB 식별자가 아니므로, 점 구문에 괄호와 따옴표를 사용하십시오.

T.('29-May-2019 Blood Pressure Reading') = BloodPressure
T=5×3 table
    Age    Smoker    29-May-2019 Blood Pressure Reading
    ___    ______    __________________________________

    38     true                  124     93            
    43     false                 109     77            
    38     true                  125     83            
    40     false                 117     75            
    49     true                  122     80            

테이블 변수 이름이 유효한 MATLAB 식별자인 경우 괄호와 따옴표가 없는 점 구문을 사용할 수 있습니다.

T.Height = Height;
T.Weight = Weight
T=5×5 table
    Age    Smoker    29-May-2019 Blood Pressure Reading    Height    Weight
    ___    ______    __________________________________    ______    ______

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

변수 이름을 사용하여 T의 요소를 참조합니다.

T(:,{'Age','Smoker','29-May-2019 Blood Pressure Reading'})
ans=5×3 table
    Age    Smoker    29-May-2019 Blood Pressure Reading
    ___    ______    __________________________________

    38     true                  124     93            
    43     false                 109     77            
    38     true                  125     83            
    40     false                 117     75            
    49     true                  122     80            

제한 사항

  • 다음 입력 이름에는 작은따옴표를 사용하십시오.

    • 'DimensionNames'R2021a 이상

    • 'RowNames'

    • 'Size'

    • 'VariableTypes'

    • 'VariableNames'

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

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

확장 기능

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

버전 내역

R2013b에 개발됨

모두 확장