Main Content

table2timetable

테이블을 타임테이블로 변환하기

설명

예제

TT = table2timetable(T)은 테이블 T를 timetable형으로 변환합니다. T의 첫 번째 datetime형 또는 duration형 변수는 TT의 행 시간값 벡터가 됩니다. T의 나머지 변수는 TT의 변수가 됩니다.

  • T가 행 이름이 없는 M×N 테이블이면 TTM×(N-1) 타임테이블입니다.

  • T가 행 이름이 있는 M×N 테이블이면 table2timetableTT의 변수에 T의 행 이름을 할당합니다. 그 결과 TTM×N 타임테이블입니다.

타임테이블을 만들고 사용하는 방법에 대한 자세한 내용은 타임테이블 항목을 참조하십시오.

텍스트 또는 스프레드시트 파일의 데이터에서 타임테이블을 만들려면 readtimetable 함수를 사용하십시오.

예제

TT = table2timetable(T,'RowTimes',timeVarName)은 테이블 변수 timeVarName을 출력 타임테이블의 행 시간값으로 구성된 벡터로 할당합니다. timeVarName은 datetime형 또는 duration형 값을 포함하는 T의 모든 변수 이름일 수 있습니다. T의 나머지 변수는 TT의 변수가 됩니다.

예제

TT = table2timetable(T,'RowTimes',rowTimes)은 벡터 rowTimes를 출력 타임테이블의 행 시간값으로 구성된 벡터로 할당합니다. T의 모든 변수는 TT의 변수가 됩니다.

예제

TT = table2timetable(T,'SampleRate',Fs)는 샘플 레이트 Fs를 사용하여 규칙적인 간격의 행 시간값을 계산합니다. Fs는 초당 샘플 수(Hz)를 지정하는 양의 숫자형 스칼라입니다. 첫 번째 행 시간값은 0초입니다.

예제

TT = table2timetable(T,'TimeStep',dt)는 시간 스텝 dt를 사용하여 규칙적인 간격의 행 시간값을 계산합니다. dt는 연속된 행 시간값 사이의 시간 길이를 지정하는 duration형 값 또는 calendarDuration형 값입니다. 첫 번째 행 시간값은 0초입니다.

예제

TT = table2timetable(___,'StartTime',t0)은 0초 대신 시작 시간 t0을 첫 번째 행 시간값으로 지정합니다. 위에 열거된 두 구문 중 하나에서 'SampleRate' 또는 'TimeStep' 이름-값 쌍의 인수를 사용하여 규칙적인 타임테이블을 만들 경우, 이 구문을 사용할 수 있습니다.

예제

모두 축소

날짜와 시간을 포함하는 테이블을 타임테이블로 변환합니다.

파일 outages.csv에서 테이블로 정전 데이터를 읽습니다. 테이블에는 정전 시간과 복원 시간 모두가 있습니다.

T = readtable('outages.csv');
T(1:5,:)
ans=5×6 table
       Region             OutageTime          Loss     Customers       RestorationTime              Cause       
    _____________    ____________________    ______    __________    ____________________    ___________________

    {'SouthWest'}    01-Feb-2002 12:18:00    458.98    1.8202e+06    07-Feb-2002 16:50:00    {'winter storm'   }
    {'SouthEast'}    23-Jan-2003 00:49:00    530.14    2.1204e+05                     NaT    {'winter storm'   }
    {'SouthEast'}    07-Feb-2003 21:15:00     289.4    1.4294e+05    17-Feb-2003 08:14:00    {'winter storm'   }
    {'West'     }    06-Apr-2004 05:44:00    434.81    3.4037e+05    06-Apr-2004 06:10:00    {'equipment fault'}
    {'MidWest'  }    16-Mar-2002 06:18:00    186.44    2.1275e+05    18-Mar-2002 23:23:00    {'severe storm'   }

테이블을 타임테이블로 변환합니다. 시간이 있는 첫 번째 변수로, OutageTimeTT의 시간 벡터가 됩니다.

TT = table2timetable(T);
TT(1:5,:)
ans=5×5 timetable
         OutageTime            Region         Loss     Customers       RestorationTime              Cause       
    ____________________    _____________    ______    __________    ____________________    ___________________

    01-Feb-2002 12:18:00    {'SouthWest'}    458.98    1.8202e+06    07-Feb-2002 16:50:00    {'winter storm'   }
    23-Jan-2003 00:49:00    {'SouthEast'}    530.14    2.1204e+05                     NaT    {'winter storm'   }
    07-Feb-2003 21:15:00    {'SouthEast'}     289.4    1.4294e+05    17-Feb-2003 08:14:00    {'winter storm'   }
    06-Apr-2004 05:44:00    {'West'     }    434.81    3.4037e+05    06-Apr-2004 06:10:00    {'equipment fault'}
    16-Mar-2002 06:18:00    {'MidWest'  }    186.44    2.1275e+05    18-Mar-2002 23:23:00    {'severe storm'   }

시간 벡터의 행 시간값을 사용하여 TT의 요소를 참조합니다. 행 시간값을 행을 지정하는 레이블로 처리할 수 있습니다.

TT('2003-02-07 21:15',:)
ans=1×5 timetable
         OutageTime            Region        Loss     Customers       RestorationTime            Cause      
    ____________________    _____________    _____    __________    ____________________    ________________

    07-Feb-2003 21:15:00    {'SouthEast'}    289.4    1.4294e+05    17-Feb-2003 08:14:00    {'winter storm'}

정전 기간을 계산합니다. 점 구문을 사용하여 행 시간값을 벡터로 추출합니다.

TT.OutageDuration = TT.RestorationTime - TT.OutageTime;
TT(1:5,:)
ans=5×6 timetable
         OutageTime            Region         Loss     Customers       RestorationTime              Cause           OutageDuration
    ____________________    _____________    ______    __________    ____________________    ___________________    ______________

    01-Feb-2002 12:18:00    {'SouthWest'}    458.98    1.8202e+06    07-Feb-2002 16:50:00    {'winter storm'   }      148:32:00   
    23-Jan-2003 00:49:00    {'SouthEast'}    530.14    2.1204e+05                     NaT    {'winter storm'   }            NaN   
    07-Feb-2003 21:15:00    {'SouthEast'}     289.4    1.4294e+05    17-Feb-2003 08:14:00    {'winter storm'   }      226:59:00   
    06-Apr-2004 05:44:00    {'West'     }    434.81    3.4037e+05    06-Apr-2004 06:10:00    {'equipment fault'}       00:26:00   
    16-Mar-2002 06:18:00    {'MidWest'  }    186.44    2.1275e+05    18-Mar-2002 23:23:00    {'severe storm'   }       65:05:00   

테이블을 타임테이블로 변환하고 타임테이블의 타임 벡터가 되는 테이블 변수를 지정합니다.

파일 outages.csv에서 테이블로 정전 데이터를 읽습니다. 테이블에는 정전 시간과 복원 시간 모두가 있습니다.

T = readtable('outages.csv');
T(1:5,:)
ans=5×6 table
       Region             OutageTime          Loss     Customers       RestorationTime              Cause       
    _____________    ____________________    ______    __________    ____________________    ___________________

    {'SouthWest'}    01-Feb-2002 12:18:00    458.98    1.8202e+06    07-Feb-2002 16:50:00    {'winter storm'   }
    {'SouthEast'}    23-Jan-2003 00:49:00    530.14    2.1204e+05                     NaT    {'winter storm'   }
    {'SouthEast'}    07-Feb-2003 21:15:00     289.4    1.4294e+05    17-Feb-2003 08:14:00    {'winter storm'   }
    {'West'     }    06-Apr-2004 05:44:00    434.81    3.4037e+05    06-Apr-2004 06:10:00    {'equipment fault'}
    {'MidWest'  }    16-Mar-2002 06:18:00    186.44    2.1275e+05    18-Mar-2002 23:23:00    {'severe storm'   }

테이블을 타임테이블로 변환합니다. 날짜와 시간이 있는 두 번째 변수로, RestorationTime을 타임테이블의 시간 벡터로 지정합니다.

TT = table2timetable(T,'RowTimes','RestorationTime');
TT(1:5,:)
ans=5×5 timetable
      RestorationTime          Region             OutageTime          Loss     Customers            Cause       
    ____________________    _____________    ____________________    ______    __________    ___________________

    07-Feb-2002 16:50:00    {'SouthWest'}    01-Feb-2002 12:18:00    458.98    1.8202e+06    {'winter storm'   }
    NaT                     {'SouthEast'}    23-Jan-2003 00:49:00    530.14    2.1204e+05    {'winter storm'   }
    17-Feb-2003 08:14:00    {'SouthEast'}    07-Feb-2003 21:15:00     289.4    1.4294e+05    {'winter storm'   }
    06-Apr-2004 06:10:00    {'West'     }    06-Apr-2004 05:44:00    434.81    3.4037e+05    {'equipment fault'}
    18-Mar-2002 23:23:00    {'MidWest'  }    16-Mar-2002 06:18:00    186.44    2.1275e+05    {'severe storm'   }

행 시간값을 포함하는 별도의 시간 벡터를 추가하여 테이블을 타임테이블로 변환합니다. 모든 테이블 변수는 타임테이블의 변수가 됩니다.

Reading1 = [98;97.5;97.9;98.1;97.9];
Reading2 = [120;111;119;117;116];
T = table(Reading1,Reading2)
T=5×2 table
    Reading1    Reading2
    ________    ________

        98        120   
      97.5        111   
      97.9        119   
      98.1        117   
      97.9        116   

Time = [seconds(1):seconds(1):seconds(5)];
TT = table2timetable(T,'RowTimes',Time)
TT=5×2 timetable
    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   

테이블을 만듭니다.

Reading1 = [98;97.5;97.9;98.1;97.9];
Reading2 = [120;111;119;117;116];
T = table(Reading1,Reading2)
T=5×2 table
    Reading1    Reading2
    ________    ________

        98        120   
      97.5        111   
      97.9        119   
      98.1        117   
      97.9        116   

샘플 레이트를 500Hz로 지정합니다. T를 해당 샘플 레이트와 0초의 시작 행 시간값을 사용하여 타임테이블로 변환합니다.

TT = table2timetable(T,'SampleRate',500)
TT=5×2 timetable
      Time       Reading1    Reading2
    _________    ________    ________

    0 sec            98        120   
    0.002 sec      97.5        111   
    0.004 sec      97.9        119   
    0.006 sec      98.1        117   
    0.008 sec      97.9        116   

테이블을 만듭니다.

Reading1 = [98;97.5;97.9;98.1;97.9];
Reading2 = [120;111;119;117;116];
T = table(Reading1,Reading2)
T=5×2 table
    Reading1    Reading2
    ________    ________

        98        120   
      97.5        111   
      97.9        119   
      98.1        117   
      97.9        116   

seconds 함수를 사용하여 시간 스텝을 10초로 지정합니다. T를 해당 샘플링 레이트와 0초의 시작 행 시간값을 사용하여 타임테이블로 변환합니다.

TT = table2timetable(T,'TimeStep',seconds(10))
TT=5×2 timetable
      Time      Reading1    Reading2
    ________    ________    ________

    00:00:00        98        120   
    00:00:10      97.5        111   
    00:00:20      97.9        119   
    00:00:30      98.1        117   
    00:00:40      97.9        116   

테이블을 만듭니다.

Reading1 = [98;97.5;97.9;98.1;97.9];
Reading2 = [120;111;119;117;116];
T = table(Reading1,Reading2)
T=5×2 table
    Reading1    Reading2
    ________    ________

        98        120   
      97.5        111   
      97.9        119   
      98.1        117   
      97.9        116   

시간 스텝을 10초로 지정하고 시작 시간을 5초로 지정하여 타임테이블로 변환합니다.

dt = seconds(10);
t0 = seconds(5);
TT = table2timetable(T,'TimeStep',dt,'StartTime',t0)
TT=5×2 timetable
     Time     Reading1    Reading2
    ______    ________    ________

    5 sec         98        120   
    15 sec      97.5        111   
    25 sec      97.9        119   
    35 sec      98.1        117   
    45 sec      97.9        116   

입력 인수

모두 축소

입력 테이블

입력 테이블의 변수 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

출력 타임테이블에 할당된 행 시간값으로, datetime형 벡터 또는 duration형 벡터로 지정됩니다. rowTimes의 요소의 개수는 입력 테이블의 행 개수와 같아야 합니다. rowTimes의 시간값은 고유하거나 정렬되거나 규칙적이지 않아도 됩니다.

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

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

데이터형: datetime | duration | calendarDuration

시작 시간으로, datetime형 스칼라 또는 duration형 스칼라로 지정됩니다.

  • t0이 datetime형 값인 경우, TT의 행 시간값은 datetime형 값입니다.

  • t0이 duration형인 경우, 행 시간값은 duration형입니다.

시간 스텝 dt가 calendarDuration형 값인 경우 t0은 datetime형 값이어야 합니다.

데이터형: datetime | duration

출력 인수

모두 축소

출력 타임테이블입니다. 이 타임테이블에는 설명, 변수 단위, 변수 이름, 행 시간값과 같은 메타데이터가 저장될 수 있습니다. 자세한 내용은 timetable의 속성 섹션을 참조하십시오.

  • 행 시간값 사이의 규칙적인 시간 스텝을 지정하는 구문을 사용하여 table2timetable 함수를 호출했는데도 table2timetable 함수가 불규칙적인 타임테이블을 반환하는 경우가 있습니다. 이러한 결과는 달력 시간 단위를 사용하여 시간 스텝을 지정할 때 불규칙적인 스텝을 발생시키는 행 시간값이 포함되어 있는 경우에 발생합니다. 예를 들어, 2019년 1월 31일부터 시작하여 달력상의 월수 1개의 시간 스텝으로 타임테이블을 만든 경우 이 타임테이블은 월에 대해 불규칙적입니다.

    stime = datetime(2019,1,31);
    tstep = calmonths(1);
    T = table([1:3]');
    TT = table2timetable(T,'TimeStep',tstep,'StartTime',stime)
    
    TT =
    
      3×1 timetable
    
           Time        Var1
        ___________    ____
    
        31-Jan-2019     1  
        28-Feb-2019     2  
        31-Mar-2019     3  
    
    

    DST(일광 절약 시간제)의 전환이나 윤초인 datetime형 값으로 인해 불규칙성이 발생하는 경우도 있습니다. 다음 표에서는 예기치 않게 불규칙적인 결과를 생성할 수 있는 날짜, 시간 및 시간 스텝을 보여줍니다.

    행 시간값

    시간 스텝

    월의 29일, 30일 또는 31일로 지정된 시작 시간.

    달력상의 월수 또는 사분기수.

    2월 29일로 지정된 시작 시간.

    달력상의 연수.

    DST에서 표준 시간으로 전환되는 날 오전 1시와 오전 2시 사이의 모든 datetime형 값(이러한 값이 DST가 적용되는 표준 시간대를 갖는 경우).달력상의 일수 또는 월수.

    윤초인 모든 datetime형 값(이러한 값의 표준 시간대가 UTCLeapSeconds 표준 시간대인 경우). 윤초 목록은 leapseconds를 참조하십시오.

    임의의 달력 단위(일수, 주수, 월수, 사분기수 또는 연수)로 지정된 시간 스텝.

확장 기능

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

버전 내역

R2016b에 개발됨

모두 확장