Создание Timetables

В этом примере показано, как создать расписание, объединить расписания и настроить данные из нескольких расписаний на общий временной вектор. Общий временной вектор может содержать время из любого или обоих расписаний, или это может быть совершенно новый временной вектор, который вы задаете. Пример показывает, как вычислить и отобразить среднесуточное значение для погодных измерений, содержащихся в различных расписаниях.

Расписание является типом таблицы, которая связывает время с каждой строкой. Расписание может хранить ориентированные на столбцы переменные данных с различными типами данных и размерами, пока каждая переменная имеет одинаковое число строк. В сложение расписания обеспечивают специфичные по времени функции для объединения, индекса в и корректировки их данных.

Импорт Timetables из файлов

Загрузите данные о качестве воздуха и измерения погоды в два разных расписания. Сроки проведения измерений варьируются с 15 ноября 2015 года по 19 ноября 2015 года. Данные о качестве воздуха поступают с датчика внутри создания, а погодные измерения - с датчиков снаружи.

Считайте данные о качестве воздуха из таблицы с readtimetable функция. Выходные выходы являются расписанием.

indoors = readtimetable('indoors.csv');

Можно также создать расписание из массива M-на-N с array2timetable function, или из переменных рабочей области с timetable функция.

Отображение первых пяти строк indoors. Каждая строка расписания имеет время, которое помечает эту строку данных.

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.

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   

Синхронизация Timetables

Расписания, indoors и outdoors, содержат различные измерения, сделанные внутри и снаружи создания в разное время. Объедините все данные в одно расписание с 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 содержит все время из обоих расписаний. synchronize помещает индикатор недостающих данных, где нет значений данных для размещения tt. Когда оба входных расписания имеют переменную с одинаковым именем, например 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   

Настройте данные в одном Timetable

Можно также настроить данные в одном расписании на новый временной вектор. Вычислим средства переменных в ttLinear более шести часов интервалов с retime функция. Если какие-либо строки имеют NaN значения после того, как вы скорректируете данные, удалите их с помощью rmmissing функция.

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

График данных расписания

Нормализуйте данные в ttHourly к среднему значению для каждой переменной в расписании. Постройте график средних суточных значений этих измерений. Можно использовать Variables свойство timetable для доступа к переменным. ttHourly.Variables возвращает те же переменные, что и ttHourly{:,:}.

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');

Figure contains an axes. The axes with title Mean Daily Weather Trends contains 5 objects of type line. These objects represent Humidity_indoors, AirQuality, Humidity_outdoors, TemperatureF, PressureHg.

См. также

| | | | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте