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

timetable

타임스탬프가 지정된 서로 다른 유형의 행과 변수를 포함하는 timetable형 배열

설명

timetable은 각 행에 시간값을 연결하는 테이블의 한 유형입니다. 테이블과 마찬가지로 타임테이블은 행 개수가 같은 경우에 한해 서로 다른 데이터형과 크기를 갖는 열 방향 데이터 변수를 저장할 수 있습니다. 또한 타임테이블은 하나 이상의 타임테이블에서 타임스탬프가 지정된 데이터를 정렬하고, 결합하고, 이 데이터를 사용하여 계산을 수행할 수 있는 시간 관련 함수를 제공합니다.

타임테이블의 행 시간값은 행에 레이블을 지정하는 datetime형 값 또는 duration형 값입니다. 행 시간값과 변수로 타임테이블의 요소를 참조할 수 있습니다. 타임테이블의 요소를 참조하려면 소괄호 ()를 사용하여 하위 테이블을 반환하거나 중괄호 {}를 사용하여 내용을 추출하십시오. 이름을 사용하여 행 시간값으로 구성된 벡터와 변수를 참조할 수 있습니다. 인덱싱에 대한 자세한 내용은 행 시간값과 변수 유형을 기준으로 타임테이블 데이터 선택하기 항목과 테이블 데이터에 액세스하기 항목을 참조하십시오.

생성

테이블 또는 배열에서 타임테이블을 생성하려면 table2timetable 함수 또는 array2timetable 함수를 사용하십시오. 아래에 설명된 대로 timetable 함수를 사용할 수도 있습니다.

timetable 함수를 사용하면 행 시간값으로 구성된 벡터를 지정하거나 샘플링 레이트 또는 시간 스텝을 사용하여 행 시간값을 생성할 수 있습니다. 또한 나중에 값을 채울 수 있도록 변수에 공백이 사전할당된 타임테이블을 생성할 수도 있습니다.

구문

TT = timetable(rowTimes,var1,...,varN)
TT = timetable(var1,...,varN,'RowTimes',rowTimes)
TT = timetable(var1,...,varN,'SamplingRate',Fs)
TT = timetable(var1,...,varN,'TimeStep',dt)
TT = timetable('Size',sz,'VariableTypes',varTypes,'RowTimes',rowTimes)
TT = timetable('Size',sz,'VariableTypes',varTypes,'SamplingRate',Fs)
TT = timetable('Size',sz,'VariableTypes',varTypes,'TimeStep',dt)
TT = timetable(___,Name,Value)

설명

예제

TT = timetable(rowTimes,var1,...,varN)은 입력 데이터 변수 var1,...,varN과 시간 벡터 rowTimes에서 타임테이블을 생성합니다. 데이터 변수는 행 개수가 동일한 경우에 한해 크기와 데이터형이 다를 수 있습니다. rowTimes도 행 개수가 동일한 datetime형 벡터 또는 duration형 벡터여야 합니다.

예제

TT = timetable(var1,...,varN,'RowTimes',rowTimes)rowTimesTT의 행 시간값 소스로 지정합니다. 이 구문을 사용하면 rowTimes가 이름이 다른 작업 공간 변수인 경우에도 TT의 행 시간값 벡터 이름은 항상 Time입니다.

예제

TT = timetable(var1,...,varN,'SamplingRate',Fs)는 샘플링 레이트 Fs로 규칙적인 간격의 행 시간값을 계산하여 타임테이블을 생성합니다. Fs는 초당 샘플수(Hz)를 지정하는 양의 숫자형 스칼라입니다. 첫 번째 행 시간값은 0초입니다.

예제

TT = timetable(var1,...,varN,'TimeStep',dt)는 시간 스텝 dt로 규칙적인 간격의 행 시간값을 계산하여 타임테이블을 생성합니다. dt는 연속된 행 시간값 사이의 시간 길이를 지정하는 duration형 값 또는 calendarDuration형 값입니다. 첫 번째 행 시간값은 0초입니다.

예제

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

예제

TT = timetable('Size',sz,'VariableTypes',varTypes,'SamplingRate',Fs)는 지정된 데이터형의 변수를 사전할당하고 샘플링 레이트 Fs를 사용하여 행 시간값을 추가합니다. 첫 번째 행 시간값은 0초입니다.

예제

TT = timetable('Size',sz,'VariableTypes',varTypes,'TimeStep',dt)는 지정된 데이터형의 변수를 사전할당하고 시간 스텝 dt를 사용하여 행 시간값을 추가합니다. 첫 번째 행 시간값은 0초입니다.

예제

TT = timetable(___,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 입력 인수를 추가로 지정합니다. 예를 들어, 'VariableNames' 이름-값 쌍을 사용하여 변수 이름을 지정할 수 있습니다. 'StartTime' 이름-값 쌍을 샘플링 레이트 또는 시간 스텝과 함께 사용하여 시작 시간을 지정할 수도 있습니다. 이 구문은 위에 열거된 구문 중 하나의 입력 인수에 사용할 수 있습니다.

입력 인수

모두 확장

입력 변수로, 행 개수가 같은 배열로 지정됩니다. 입력 변수는 행 개수가 동일한 경우에 한해 크기와 데이터형이 다를 수 있습니다.

일반적인 입력 변수는 숫자형 배열, 논리형 배열, string형 배열, 구조체형 배열, 셀형 배열입니다.

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

타임테이블의 행과 연관된 시간값으로, datetime형 벡터 또는 duration형 벡터로 지정됩니다. 각 시간값은 출력 타임테이블 TT의 행에 레이블을 지정합니다. rowTimes의 시간값은 고유하거나 정렬되거나 규칙적이지 않아도 됩니다.

데이터형: datetime | duration

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

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

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

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

'single'단정밀도 숫자
'double'배정밀도 숫자
'int8'부호 있는 8비트 정수
'int16'부호 있는 16비트 정수
'int32'부호 있는 32비트 정수
'int64'부호 있는 64비트 정수
'uint8'부호 없는 8비트 정수
'uint16'부호 없는 16비트 정수
'uint32'부호 없는 32비트 정수
'uint64'부호 없는 64비트 정수
'logical'논리값 1(true) 또는 0(false)
'char'문자
'string'string형 배열
'struct'구조체형 배열
'cell'셀형 배열
'table'테이블
'function_handle'함수 핸들

샘플링 레이트로, 양의 숫자형 스칼라로 지정됩니다. Fs는 초당 샘플 수(Hz)를 지정합니다.

시간 스텝으로, duration형 스칼라로 지정됩니다.

dt를 calendarDuration형으로 지정하고 'StartTime' 이름-값 쌍의 인수를 지정하는 경우 'StartTime' 값은 datetime형 스칼라여야 합니다.

데이터형: duration | calendarDuration

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 작은따옴표(' ') 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: TT = timetable(rowTimes,T,W,'VariableNames',{'Temperature','WindSpeed'})는 입력 배열 TW에서 타임테이블을 생성하고 해당 타임테이블 변수의 이름을 TemperatureWindSpeed로 지정합니다.

변수 이름으로, 'VariableNames'와 함께 문자형 벡터로 구성된 셀형 배열이 쉼표로 구분되어 지정됩니다. 셀형 배열의 이름 개수는 테이블 변수의 개수와 같아야 합니다.

시작 시간으로, 'StartTime'과 함께 datetime형 스칼라 또는 duration형 스칼라가 쉼표로 구분되어 지정됩니다. 또한 시작 시간은 타임테이블에 있는 첫 번째 행의 행 시간값입니다.

'SamplingRate' 또는 'TimeStep' 이름-값 쌍의 인수도 지정해야만 'StartTime'을 지정할 수 있습니다.

  • 시작 시간이 datetime형 값이면 TT의 행 시간값은 datetime형 값입니다.

  • 시작 시간이 duration형이면 행 시간값은 duration형입니다.

  • 시간 스텝 dt가 calendarDuration형 값이면 시작 시간은 datetime형 값이어야 합니다.

데이터형: datetime | duration

속성

모두 확장

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

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

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

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

타임테이블 메타데이터

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

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

예제

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

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]);
TT.Properties.DimensionNames
ans = 1×2 cell array
    {'Time'}    {'Variables'}

첫 번째 차원 이름을 사용하여 행 시간값에 액세스합니다.

TT.Time
ans = 3×1 datetime array
   18-Dec-2015
   19-Dec-2015
   20-Dec-2015

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

TT.Variables
ans = 3×3

   37.3000   30.1000   13.4000
   39.1000   30.0300    6.5000
   42.3000   29.9000    7.3000

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

TT.Properties.DimensionNames = {'Date','WeatherData'};
TT.Properties
ans = struct with fields:
             Description: ''
                UserData: []
          DimensionNames: {'Date'  'WeatherData'}
           VariableNames: {'Var1'  'Var2'  'Var3'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowTimes: [3×1 datetime]

행 시간값으로, datetime형 벡터 또는 duration형 벡터로 지정됩니다. 타임테이블의 각 행에 대응하는 행 시간값이 있어야 합니다. 하지만 타임테이블에는 중복되거나 정렬되지 않았거나 NaT 값 또는 NaN 값을 갖는 행 시간값이 있을 수 있습니다.

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

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

예제

타임테이블을 생성합니다. 그런 다음, Properties.RowTimes 속성을 사용하여 타임테이블의 행 시간값을 바꿉니다.

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3])
TT=3×3 timetable
       Time        Var1    Var2     Var3
    ___________    ____    _____    ____

    18-Dec-2015    37.3     30.1    13.4
    19-Dec-2015    39.1    30.03     6.5
    20-Dec-2015    42.3     29.9     7.3

Dates = datetime(2017,1,1:3);
TT.Properties.RowTimes = Dates
TT=3×3 timetable
       Time        Var1    Var2     Var3
    ___________    ____    _____    ____

    01-Jan-2017    37.3     30.1    13.4
    02-Jan-2017    39.1    30.03     6.5
    03-Jan-2017    42.3     29.9     7.3

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

TT.Properties.DimensionNames
ans = 1×2 cell array
    {'Time'}    {'Variables'}

TT.Time
ans = 3×1 datetime array
   01-Jan-2017
   02-Jan-2017
   03-Jan-2017

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

예제

타임테이블을 생성합니다. 변수 이름과 타임테이블 설명을 수정합니다. 결과의 요약을 표시합니다.

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]);
TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'};
TT.Properties.Description = 'Weather Data from December 2015';
summary(TT)
Description:  Weather Data from December 2015

RowTimes:

    Time: 3×1 datetime
        Values:

            Min          18-Dec-2015 
            Median       19-Dec-2015 
            Max          20-Dec-2015 
            TimeStep     24:00:00    

Variables:

    Temp: 3×1 double

        Values:

            Min        37.3 
            Median     39.1 
            Max        42.3 

    Pressure: 3×1 double

        Values:

            Min          29.9   
            Median      30.03   
            Max          30.1   

    WindSpeed: 3×1 double

        Values:

            Min           6.5    
            Median        7.3    
            Max          13.4    

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

예제

타임테이블을 생성합니다. 변수 이름을 수정합니다. 익명 함수를 타임테이블과 연관된 사용자 데이터로서 추가합니다.

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]);
TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'};
Fahrenheit2Celsius = @(x) (5.0/9.0).*(x - 32);
TT.Properties.UserData = Fahrenheit2Celsius;
TT.Properties
ans = struct with fields:
             Description: ''
                UserData: @(x)(5.0/9.0).*(x-32)
          DimensionNames: {'Time'  'Variables'}
           VariableNames: {'Temp'  'Pressure'  'WindSpeed'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowTimes: [3×1 datetime]

변수 메타데이터

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

변수 이름을 지정하지 않거나 유효하지 않은 식별자를 지정하면 MATLAB은 {'Var1' ... 'VarN'} 형식의 N개 문자형 벡터로 구성된 셀형 배열을 사용합니다. 여기서 N은 변수 개수입니다.

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

예제

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

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3])
TT=3×3 timetable
       Time        Var1    Var2     Var3
    ___________    ____    _____    ____

    18-Dec-2015    37.3     30.1    13.4
    19-Dec-2015    39.1    30.03     6.5
    20-Dec-2015    42.3     29.9     7.3

TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'}
TT=3×3 timetable
       Time        Temp    Pressure    WindSpeed
    ___________    ____    ________    _________

    18-Dec-2015    37.3      30.1        13.4   
    19-Dec-2015    39.1     30.03         6.5   
    20-Dec-2015    42.3      29.9         7.3   

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

TT.Temp
ans = 3×1

   37.3000
   39.1000
   42.3000

TT.Pressure(3) = 30
TT=3×3 timetable
       Time        Temp    Pressure    WindSpeed
    ___________    ____    ________    _________

    18-Dec-2015    37.3      30.1        13.4   
    19-Dec-2015    39.1     30.03         6.5   
    20-Dec-2015    42.3        30         7.3   

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

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

예제

타임테이블을 생성합니다. 변수 이름과 변수 설명을 수정합니다. 결과의 요약을 표시합니다.

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]);
TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'};
TT.Properties.VariableDescriptions = {'Temperature (external)', ...
                                      'Pressure in Hg', ...
                                      'Wind speed at sensor 123'};
summary(TT)
RowTimes:

    Time: 3×1 datetime
        Values:

            Min          18-Dec-2015 
            Median       19-Dec-2015 
            Max          20-Dec-2015 
            TimeStep     24:00:00    

Variables:

    Temp: 3×1 double

        Description:  Temperature (external)
        Values:

            Min        37.3 
            Median     39.1 
            Max        42.3 

    Pressure: 3×1 double

        Description:  Pressure in Hg
        Values:

            Min          29.9   
            Median      30.03   
            Max          30.1   

    WindSpeed: 3×1 double

        Description:  Wind speed at sensor 123
        Values:

            Min           6.5    
            Median        7.3    
            Max          13.4    

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

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

예제

타임테이블을 생성합니다. 변수 이름과 변수 단위를 수정합니다. 결과의 요약을 표시합니다.

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[30.1;30.03;29.9],[13.4;6.5;7.3]);
TT.Properties.VariableNames = {'Temp','Pressure','WindSpeed'};
TT.Properties.VariableUnits = {'degrees F','mm Hg','mph'};
summary(TT)
RowTimes:

    Time: 3×1 datetime
        Values:

            Min          18-Dec-2015 
            Median       19-Dec-2015 
            Max          20-Dec-2015 
            TimeStep     24:00:00    

Variables:

    Temp: 3×1 double

        Units:  degrees F
        Values:

            Min        37.3 
            Median     39.1 
            Max        42.3 

    Pressure: 3×1 double

        Units:  mm Hg
        Values:

            Min          29.9   
            Median      30.03   
            Max          30.1   

    WindSpeed: 3×1 double

        Units:  mph
        Values:

            Min           6.5    
            Median        7.3    
            Max          13.4    

연속 변수 또는 이산 변수로서의 상태로, 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 이 속성은 빈 배열(디폴트 값)일 수 있습니다. 배열이 비어 있지 않은 경우, 여기에는 변수 개수만큼의 요소가 포함되어야 합니다. 각 요소는 'unset', 'continuous', 'step' 또는 'event'일 수 있습니다.

VariableContinuity의 값은 retime 함수 또는 synchronize 함수의 작동 방식에 영향을 미칩니다. VariableContinuity를 지정하고 retime 또는 synchronize를 호출하는 경우 메서드를 지정하지 않아도 됩니다. 대신, retimesynchronize가 다음 디폴트 메서드를 사용하여 출력 타임테이블 변수를 채웁니다.

  • 'unset' — 변수의 유형에 맞는 누락 데이터 표시자(예: 숫자형 변수의 경우 NaN)를 사용하여 값을 채웁니다.

  • 'continuous' — 선형 보간을 사용하여 값을 채웁니다.

  • 'step' — 이전 값을 사용하여 값을 채웁니다.

  • 'event' — 변수의 유형에 맞는 누락 데이터 표시자(예: 숫자형 변수의 경우 NaN)를 사용하여 값을 채웁니다.

retime 또는 synchronize에 대한 입력 인수로 메서드를 지정하면 이 메서드가 VariableContinuity에 지정된 값을 재정의합니다.

VariableContinuity 속성 사용에 대한 자세한 내용은 여러 가지 방법으로 타임테이블 변수에 대한 시간 값을 재지정하고 동기화하기 항목을 참조하십시오.

예제

타임테이블을 생성합니다. 각 변수의 matlab.tabular.Continuity 값을 지정합니다.

TT = timetable(datetime({'2015-12-18';'2015-12-19';'2015-12-20'}), ...
               [37.3;39.1;42.3],[13.4;6.5;7.3],{'N';'SE';'NW'});
TT.Properties.VariableNames = {'Temperature','WindSpeed','WindDirection'};
TT.Properties.VariableContinuity = {'continuous','event','event'};
TT.Properties
ans = struct with fields:
             Description: ''
                UserData: []
          DimensionNames: {'Time'  'Variables'}
           VariableNames: {'Temperature'  'WindSpeed'  'WindDirection'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: [continuous    event    event]
                RowTimes: [3×1 datetime]

예제

모두 축소

서로 다른 시간에 측정한 기상 조건 데이터를 타임테이블에 저장합니다. 타임테이블에서는 저장 기능 외에도 지정하는 시간으로 데이터를 동기화하는 함수도 제공합니다. 또한 타임테이블에 주석을 지정하여 작업과 타임테이블 변수를 설명할 수도 있습니다.

작업 공간 변수에서 타임테이블을 생성합니다. MeasurementTime의 값이 타임테이블의 행 시간값이 됩니다. 다른 입력 인수는 모두 타임테이블 변수가 됩니다. 이 구문을 사용할 때는 행 시간값 벡터와 TT 변수의 이름을 입력 인수의 이름으로 사용합니다.

MeasurementTime = datetime({'2015-12-18 08:03:05';'2015-12-18 10:03:17';'2015-12-18 12:03:13'});
Temp = [37.3;39.1;42.3];
Pressure = [30.1;30.03;29.9];
WindSpeed = [13.4;6.5;7.3];
TT = timetable(MeasurementTime,Temp,Pressure,WindSpeed)
TT=3×3 timetable
      MeasurementTime       Temp    Pressure    WindSpeed
    ____________________    ____    ________    _________

    18-Dec-2015 08:03:05    37.3      30.1        13.4   
    18-Dec-2015 10:03:17    39.1     30.03         6.5   
    18-Dec-2015 12:03:13    42.3      29.9         7.3   

기상 데이터를 시간 스텝이 1시간인 규칙적인 시간으로 동기화합니다. 선형 보간을 사용하여 데이터를 새 시간으로 조정합니다.

TT2 = retime(TT,'hourly','linear')
TT2=6×3 timetable
      MeasurementTime        Temp     Pressure    WindSpeed
    ____________________    ______    ________    _________

    18-Dec-2015 08:00:00    37.254     30.102      13.577  
    18-Dec-2015 09:00:00    38.152     30.067      10.133  
    18-Dec-2015 10:00:00    39.051     30.032      6.6885  
    18-Dec-2015 11:00:00    40.613     29.969      6.8783  
    18-Dec-2015 12:00:00    42.214     29.903      7.2785  
    18-Dec-2015 13:00:00    43.815     29.838      7.6788  

출력값의 행 시간값이 측정된 시간이 아니기 때문에 행 시간값으로 구성된 벡터의 이름을 바꿉니다. 이 벡터는 타임테이블의 첫 번째 차원 이름이기도 합니다.

TT2.Properties.DimensionNames{1} = 'InterpolatedTimes'
TT2=6×3 timetable
     InterpolatedTimes       Temp     Pressure    WindSpeed
    ____________________    ______    ________    _________

    18-Dec-2015 08:00:00    37.254     30.102      13.577  
    18-Dec-2015 09:00:00    38.152     30.067      10.133  
    18-Dec-2015 10:00:00    39.051     30.032      6.6885  
    18-Dec-2015 11:00:00    40.613     29.969      6.8783  
    18-Dec-2015 12:00:00    42.214     29.903      7.2785  
    18-Dec-2015 13:00:00    43.815     29.838      7.6788  

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

TT2.Properties.Description = 'Weather data, interpolated to regular hourly times';
TT2.Properties
ans = struct with fields:
             Description: 'Weather data, interpolated to regular hourly times'
                UserData: []
          DimensionNames: {'InterpolatedTimes'  'Variables'}
           VariableNames: {'Temp'  'Pressure'  'WindSpeed'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowTimes: [6×1 datetime]

점 구문을 사용하여 타임테이블의 행 시간값에 액세스할 수 있습니다. 또한 점 구문을 사용하여 개별 변수에 액세스하거나 타임테이블의 두 번째 차원 이름을 사용하여 타임테이블의 모든 데이터에 액세스할 수 있습니다.

MAT 파일 outdoors에서 타임테이블을 불러옵니다. 처음 세 개의 행을 표시합니다.

load outdoors
outdoors(1:3,:)
ans=3×3 timetable
           Time            Humidity    TemperatureF    PressureHg
    ___________________    ________    ____________    __________

    2015-11-15 00:00:24        49          51.3          29.61   
    2015-11-15 01:30:24      48.9          51.5          29.61   
    2015-11-15 03:00:24      48.9          51.5          29.61   

행 시간값 벡터의 이름을 사용하여 행 시간값에 액세스합니다. 이 이름은 타임테이블의 첫 번째 차원 이름이기도 합니다. outdoors는 행 시간값을 datetime형 벡터로 저장합니다. 처음 3개 시간값을 표시합니다.

outdoors.Time(1:3)
ans = 3×1 datetime array
   2015-11-15 00:00:24
   2015-11-15 01:30:24
   2015-11-15 03:00:24

변수 이름을 사용하여 기온을 숫자형 벡터로 액세스합니다.

outdoors.TemperatureF(1:3)
ans = 3×1

   51.3000
   51.5000
   51.5000

구문 outdoors.Variables를 사용하여 모든 타임테이블 데이터를 행렬로 액세스합니다. 이 구문은 타임테이블의 두 번째 차원 이름을 사용하기 때문에, 중괄호 인덱싱 outdoors{:,:}을 사용하여 모든 내용에 액세스하는 것과 같습니다. 하지만 행 시간값으로 구성된 벡터는 변수가 아니라 타임테이블 메타데이터이기 때문에 행렬에는 행 시간값이 포함되지 않습니다. 타임테이블 데이터를 하나의 행렬로 결합할 수 없는 경우, 오류 메시지가 나타납니다.

outdoors.Variables
ans = 51×3

   49.0000   51.3000   29.6100
   48.9000   51.5000   29.6100
   48.9000   51.5000   29.6100
   48.8000   51.5000   29.6100
   48.7000   51.5000   29.6000
   48.8000   51.5000   29.6000
   49.0000   51.5000   29.6000
   49.1000   51.3000   29.6000
   49.1000   51.3000   29.6100
   49.1000   51.5000   29.6100
      ⋮

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

outdoors.Properties.DimensionNames{2} = 'Data';
outdoors.Data
ans = 51×3

   49.0000   51.3000   29.6100
   48.9000   51.5000   29.6100
   48.9000   51.5000   29.6100
   48.8000   51.5000   29.6100
   48.7000   51.5000   29.6000
   48.8000   51.5000   29.6000
   49.0000   51.5000   29.6000
   49.1000   51.3000   29.6000
   49.1000   51.3000   29.6100
   49.1000   51.5000   29.6100
      ⋮

'RowTimes' 이름-값 쌍의 인수를 사용하여 타임테이블을 생성합니다. TT의 행 시간값 벡터 이름은 MeasurementTime이 아니라 Time입니다. 이 구문을 사용하는 경우 행 시간값 벡터 이름은 항상 Time입니다.

MeasurementTime = datetime({'2015-12-18 08:03:05';'2015-12-18 10:03:17';'2015-12-18 12:03:13'});
Temp = [37.3;39.1;42.3];
Pressure = [29.4;29.6;30.0];
Precip = [0.1;0.9;0.0];
StormDuration = [hours(1);hours(2);NaN];
TT = timetable(Temp,Pressure,Precip,StormDuration,'RowTimes',MeasurementTime)
TT=3x4 timetable null
            Time            Temp    Pressure    Precip    StormDuration
    ____________________    ____    ________    ______    _____________

    18-Dec-2015 08:03:05    37.3      29.4       0.1           1 hr    
    18-Dec-2015 10:03:17    39.1      29.6       0.9           2 hr    
    18-Dec-2015 12:03:13    42.3        30         0         NaN hr    

타임테이블을 생성합니다. 작업 공간 변수가 아닌 입력 인수가 있으면 timetable 함수는 이에 대응하는 행 시간값 벡터와 타임테이블 변수에 디폴트 이름을 할당합니다. 예를 들어, 열 벡터로 만들기 위해 입력 인수를 전치하는 경우 이 입력 인수는 작업 공간 변수가 아닙니다. 행 시간값으로 구성된 벡터의 디폴트 이름은 Time이고, N번째 타임테이블 변수의 디폴트 이름은 VarN입니다.

T = hours(1:3);
Temp = [37.3;39.1;42.3];
P = [29.4 29.6 30];
TT = timetable(T',Temp,P')
TT=3x2 timetable null
    Time    Temp    Var2
    ____    ____    ____

    1 hr    37.3    29.4
    2 hr    39.1    29.6
    3 hr    42.3      30

100Hz의 샘플링 레이트를 사용하여 규칙적인 타임테이블을 생성합니다.

Intensity = [100;98.7;95.2;101.4;99.1];
TT = timetable(Intensity,'SamplingRate',100)
TT=5x1 timetable null
      Time      Intensity
    ________    _________

    0 sec           100  
    0.01 sec       98.7  
    0.02 sec       95.2  
    0.03 sec      101.4  
    0.04 sec       99.1  

첫 번째 행 시간값을 30초로 하여 타임테이블을 생성합니다. 시작 시간을 지정하려면 'StartTime' 이름-값 쌍의 인수를 사용하십시오.

TT = timetable(Intensity,'SamplingRate',100,'StartTime',seconds(30))
TT=5x1 timetable null
      Time       Intensity
    _________    _________

    30 sec           100  
    30.01 sec       98.7  
    30.02 sec       95.2  
    30.03 sec      101.4  
    30.04 sec       99.1  

0.01초의 시간 스텝을 사용하여 규칙적인 타임테이블을 생성합니다. 시간 스텝은 duration형 값 또는 calendarDuration형 값으로 지정해야 합니다.

Intensity = [100;98.7;95.2;101.4;99.1];
TT = timetable(Intensity,'TimeStep',seconds(0.01))
TT=5x1 timetable null
      Time      Intensity
    ________    _________

    0 sec           100  
    0.01 sec       98.7  
    0.02 sec       95.2  
    0.03 sec      101.4  
    0.04 sec       99.1  

첫 번째 행 시간값을 30초로 하여 타임테이블을 생성합니다. 시작 시간을 지정하려면 'StartTime' 이름-값 쌍의 인수를 사용하십시오.

TT = timetable(Intensity,'TimeStep',seconds(0.01),'StartTime',seconds(30))
TT=5x1 timetable null
      Time       Intensity
    _________    _________

    30 sec           100  
    30.01 sec       98.7  
    30.02 sec       95.2  
    30.03 sec      101.4  
    30.04 sec       99.1  

테이블 크기와 변수의 데이터형을 지정하여 테이블을 사전할당합니다. timetable 함수는 지정하는 데이터형에 적합한 디폴트 값으로 변수를 채웁니다. 또한 변수에 디폴트 이름을 지정합니다.

T = [datetime('now') datetime(2017,11,1:3)];
sz = [4 3];
varTypes = {'double','double','string'};
TT = timetable('Size',sz,'VariableTypes',varTypes,'RowTimes',T)
TT=4×3 timetable
            Time            Var1    Var2      Var3   
    ____________________    ____    ____    _________

    12-Jan-2018 13:26:56     0       0      <missing>
    01-Nov-2017 00:00:00     0       0      <missing>
    02-Nov-2017 00:00:00     0       0      <missing>
    03-Nov-2017 00:00:00     0       0      <missing>

'VariableNames' 이름-값 쌍의 인수를 사용하여 변수의 이름을 지정합니다.

varNames = {'Temperature','WindSpeed','Station'};
TT = timetable('Size',sz,'VariableTypes',varTypes,'RowTimes',T,'VariableNames',varNames)
TT=4×3 timetable
            Time            Temperature    WindSpeed     Station 
    ____________________    ___________    _________    _________

    12-Jan-2018 13:26:56         0             0        <missing>
    01-Nov-2017 00:00:00         0             0        <missing>
    02-Nov-2017 00:00:00         0             0        <missing>
    03-Nov-2017 00:00:00         0             0        <missing>

TT에 데이터 행을 추가합니다. 사전할당 기법은 코드가 한 번에 1개 또는 적은 수의 데이터 행을 추가할 때 유용할 수 있습니다. 행을 추가할 때마다 일일이 타임테이블을 늘리는 대신 데이터를 추가할 수 있는 공간이 이미 있는 테이블 변수를 채울 수 있습니다. 한 줄의 데이터 값을 셀형 배열에 담아 타임테이블의 한 행에 할당할 수 있습니다.

시간값을 사용하여 행에 첨자를 추가하고 한 줄의 데이터 값을 할당합니다. 숫자를 행과 변수에 대한 첨자로 사용할 수도 있습니다. 하지만 시간을 타임테이블에 대한 첨자로 사용하는 것이 유용한 방법입니다.

TT(datetime(2017,11,2),:) = {48.2,13.33,"S1"}
TT=4×3 timetable
            Time            Temperature    WindSpeed     Station 
    ____________________    ___________    _________    _________

    12-Jan-2018 13:26:56          0              0      <missing>
    01-Nov-2017 00:00:00          0              0      <missing>
    02-Nov-2017 00:00:00       48.2          13.33      "S1"     
    03-Nov-2017 00:00:00          0              0      <missing>

한 줄의 데이터 값을 셀형 배열에 담을 수 있습니다. 셀형 배열에서 행을 할당하면 그 결과, 셀형 배열이 타임테이블 행으로 변환됩니다.

샘플링 레이트를 1000Hz로 지정하고 타임테이블을 사전할당합니다. 시작 시간을 지정할 수도 있습니다.

sz = [4 3];
varTypes = {'uint64','double','duration'};
TT = timetable('Size',sz,'VariableTypes',varTypes,'SamplingRate',1000,'StartTime',seconds(15))
TT=4x3 timetable null
       Time       Var1    Var2      Var3  
    __________    ____    ____    ________

    15 sec         0       0      00:00:00
    15.001 sec     0       0      00:00:00
    15.002 sec     0       0      00:00:00
    15.003 sec     0       0      00:00:00

세 번째 행의 시간값을 지정하여 해당 요소를 참조하고 데이터를 추가합니다.

TT(seconds(15.002),:) = {50,1.37,minutes(76)}
TT=4x3 timetable null
       Time       Var1    Var2      Var3  
    __________    ____    ____    ________

    15 sec          0        0    00:00:00
    15.001 sec      0        0    00:00:00
    15.002 sec     50     1.37    01:16:00
    15.003 sec      0        0    00:00:00

시간 스텝과 변수 이름을 지정합니다.

sz = [3 2];
varTypes = {'double','double'};
TT = timetable('Size',sz,'VariableTypes',varTypes,'TimeStep',seconds(0.1),'VariableNames',{'Intensity','Distance'})
TT=3x2 timetable null
     Time      Intensity    Distance
    _______    _________    ________

    0 sec          0           0    
    0.1 sec        0           0    
    0.2 sec        0           0    

두 번째 행의 시간값을 지정하여 해당 요소를 참조하고 데이터를 추가합니다.

TT(seconds(0.1),:) = {93.6,11.27}
TT=3x2 timetable null
     Time      Intensity    Distance
    _______    _________    ________

    0 sec           0            0  
    0.1 sec      93.6        11.27  
    0.2 sec         0            0  

타임테이블을 생성하고 타임테이블 변수의 이름을 지정합니다. 행 시간값으로 구성된 벡터는 duration형 벡터(단위: 초)입니다.

Time = seconds(1:5)';
TT = timetable(Time,[98;97.5;97.9;98.1;97.9],[120;111;119;117;116],...
               'VariableNames',{'Reading1','Reading2'})
TT=5x2 timetable null
    Time     Reading1    Reading2
    _____    ________    ________

    1 sec        98        120   
    2 sec      97.5        111   
    3 sec      97.9        119   
    4 sec      98.1        117   
    5 sec      97.9        116   

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

확장 기능

R2016b에 개발됨