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

타임테이블 생성하기

이 예제에서는 타임테이블을 생성 및 결합하고, 여러 타임테이블의 데이터를 공통된 시간 벡터로 조정하는 방법을 보여줍니다. 공통된 시간 벡터는 타임테이블 중 하나 또는 둘 모두의 시간을 포함하거나, 사용자가 지정한 완전히 새로운 시간 벡터일 수 있습니다. 이 예제에서는 여러 타임테이블에 포함된 날씨 측정값의 일별 평균을 계산하고 표시하는 방법을 보여줍니다.

타임테이블은 각 행에 시간값을 연결하는 테이블의 한 유형입니다. 타임테이블은 각 변수에 동일한 개수의 행이 있는 한, 다양한 데이터형과 데이터 크기를 포함하는 열 방향 데이터 변수를 저장할 수 있습니다. 또한 타임테이블은 데이터를 결합하고, 데이터에 첨자를 사용하고, 데이터를 조정할 수 있는 시간 관련 함수도 제공합니다.

파일에서 타임테이블 가져오기

대기질 데이터와 날씨 측정값을 두 개의 서로 다른 타임테이블에 불러옵니다. 측정 날짜의 범위는 2015년 11월 15일부터 2015년 11월 19일까지입니다. 대기질 데이터는 건물 내부의 센서에서 얻어지고, 날씨 측정값은 외부 센서에서 얻어집니다.

readtable 함수를 사용하여 테이블에서 대기질 데이터를 읽습니다. 그런 다음, table2timetable 함수를 사용하여 이 테이블 데이터를 타임테이블로 변환합니다. readtable 함수는 타임테이블이 아니라 테이블만 반환합니다.

indoors = readtable('indoors.csv');
indoors = table2timetable(indoors);

array2timetable 함수를 사용하여 MxN 배열에서 타임테이블을 생성하거나 timetable 함수를 사용하여 작업 공간 변수에서 타임테이블을 생성할 수도 있습니다.

indoors의 처음 5개 행을 표시합니다. 타임테이블의 각 행에는 그 행을 표시하는 시간값이 있습니다.

indoors(1:5,:)
ans=5×2 timetable
           Time            Humidity    AirQuality
    ___________________    ________    __________

    2015-11-15 00:00:24       36           80    
    2015-11-15 01:13:35       36           80    
    2015-11-15 02:26:47       37           79    
    2015-11-15 03:39:59       37           82    
    2015-11-15 04:53:11       36           80    

날씨 측정값이 포함된 타임테이블을 불러옵니다. outdoors의 처음 5개 행을 표시합니다.

load outdoors
outdoors(1:5,:)
ans=5×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   
    2015-11-15 04:30:24      48.8          51.5          29.61   
    2015-11-15 06:00:24      48.7          51.5           29.6   

타임테이블 동기화하기

타임테이블 indoorsoutdoors에는 서로 다른 시간에 건물 내부와 외부에서 얻어진 측정값이 포함되어 있습니다. synchronize 함수를 사용하여 모든 데이터를 하나의 타임테이블로 결합합니다.

tt = synchronize(indoors,outdoors);
tt(1:5,:)
ans=5×5 timetable
           Time            Humidity_indoors    AirQuality    Humidity_outdoors    TemperatureF    PressureHg
    ___________________    ________________    __________    _________________    ____________    __________

    2015-11-15 00:00:24           36               80                49               51.3          29.61   
    2015-11-15 01:13:35           36               80               NaN                NaN            NaN   
    2015-11-15 01:30:24          NaN              NaN              48.9               51.5          29.61   
    2015-11-15 02:26:47           37               79               NaN                NaN            NaN   
    2015-11-15 03:00:24          NaN              NaN              48.9               51.5          29.61   

출력 타임테이블 tt는 두 타임테이블의 모든 시간값을 포함합니다. synchronizett에서 데이터 값이 없는 위치에 누락 데이터 표시자를 넣습니다. 두 입력 타임테이블에 Humidity 같이 이름이 동일한 변수가 있는 경우 synchronize는 두 변수의 이름을 모두 바꾸고 출력 타임테이블에 바뀐 두 변수 이름을 추가합니다.

타임테이블을 다시 동기화하되, 이번에는 선형 보간으로 누락 데이터 값을 채웁니다.

ttLinear = synchronize(indoors,outdoors,'union','linear');
ttLinear(1:5,:)
ans=5×5 timetable
           Time            Humidity_indoors    AirQuality    Humidity_outdoors    TemperatureF    PressureHg
    ___________________    ________________    __________    _________________    ____________    __________

    2015-11-15 00:00:24            36                80               49               51.3         29.61   
    2015-11-15 01:13:35            36                80           48.919             51.463         29.61   
    2015-11-15 01:30:24         36.23             79.77             48.9               51.5         29.61   
    2015-11-15 02:26:47            37                79             48.9               51.5         29.61   
    2015-11-15 03:00:24            37            80.378             48.9               51.5         29.61   

단일 타임테이블의 데이터 조정하기

단일 타임테이블의 데이터를 새로운 시간 벡터에 맞게 조정할 수도 있습니다. retime 함수를 사용하여 6시간 간격으로 ttLinear 내 변수의 평균을 계산합니다. 데이터를 조정한 후에 행에 NaN 값이 있으면 rmmissing 함수를 사용하여 그러한 값을 제거합니다.

tv = [datetime(2015,11,15):hours(6):datetime(2015,11,18)];
ttHourly = retime(ttLinear,tv,'mean');
ttHourly = rmmissing(ttHourly);

타임테이블 데이터 플로팅하기

ttHourly의 데이터를 타임테이블 내 각 변수의 평균으로 정규화합니다. 이러한 측정값의 일별 평균값을 플로팅합니다. 타임테이블의 Variables 속성을 사용하여 변수에 액세스할 수 있습니다. ttHourly.VariablesttHourly{:,:}와 동일한 변수를 반환합니다.

ttMeanVars = ttHourly.Variables./mean(ttHourly.Variables);
plot(ttHourly.Time,ttMeanVars);
legend(ttHourly.Properties.VariableNames,'Interpreter','none');
xlabel('Time');
ylabel('Normalized Weather Measurements');
title('Mean Daily Weather Trends');

참고 항목

| | | | |

관련 항목