exponenta event banner

joindata

Объединение двух таблиц фреймов с использованием внешнего соединения

Описание

joindata - функция, используемая в коде, созданном конструктором диагностических функций.

table12 = joindata(table1,table2) объединяет две таблицы, используя внешнее соединение с первыми двумя столбцами в качестве первичных ключей для объединения. Как правило, внешнее соединение объединяет строки таблицы, где ключевые переменные имеют совпадающие значения, а также сохраняет строки, где ключевые переменные из одной входной таблицы не имеют совпадений в другой входной таблице (см. outerjoin). joindata объединяет две таблицы фреймов. Первые два столбца обеих таблиц фреймов содержат начальную и конечную точки сегмента. Другие столбцы в таблицах содержат данные, связанные с кадром. Имена столбцов данных должны быть уникальными, т. е. столбцы данных в table2 не должно иметь то же имя, что и столбцы данных в table1.

Код, генерируемый конструктором диагностических функций joindata при выполнении обработки кадровой статистики ансамбля. В коде, table1 содержит существующие данные кадра и table2 содержит только что вычисленные результаты кадра.

пример

table12 = joindata(table1,table2,'Keys',keys) использует столбцы с именами, указанными в keys в качестве первичных ключей для слияния. Например, 'Keys',["TimeStart","TimeEnd"] указывает, что joindata использовать столбцы с именами "TimeStart" и "TimeEnd" вместо автоматического использования первых двух столбцов для первичных ключей.

Примеры

свернуть все

Объединение двух перекрывающихся таблиц фреймов.

Создать table1, таблица 4 на 3, которая содержит значения для переменной Var1 в четырех последовательных 5-секундных кадрах.

table1 = table(seconds(0:5:15)', seconds(5:5:20)', [3;4;5;6], ...
    'VariableNames', ["TimeStart", "TimeEnd", "Var1"])
table1=4×3 table
    TimeStart    TimeEnd    Var1
    _________    _______    ____

      0 sec       5 sec      3  
      5 sec      10 sec      4  
     10 sec      15 sec      5  
     15 sec      20 sec      6  

Создать table2, также таблица 4 на 3, которая перекрывает кадры в table1. table2 содержит значения для Var2.

table2 = table(seconds(5:5:20)', seconds(10:5:25)', [1;2;3;4], ...
    'VariableNames', ["TimeStart", "TimeEnd", "Var2"])
table2=4×3 table
    TimeStart    TimeEnd    Var2
    _________    _______    ____

      5 sec      10 sec      1  
     10 sec      15 sec      2  
     15 sec      20 sec      3  
     20 sec      25 sec      4  

Объединение двух таблиц с помощью "TimeStart" и "TimeEnd" в качестве ключей слияния.

table12 = joindata(table1, table2, 'Keys', ["TimeStart", "TimeEnd"])
table12=5×4 table
    TimeStart    TimeEnd    Var1    Var2
    _________    _______    ____    ____

      0 sec       5 sec       3     NaN 
      5 sec      10 sec       4       1 
     10 sec      15 sec       5       2 
     15 sec      20 sec       6       3 
     20 sec      25 sec     NaN       4 

table12 - таблица 5 на 4, содержащая значения для Var1 и Var2 для каждого кадра. Отсутствующие значения представлены NaN.

Входные аргументы

свернуть все

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

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

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

Выходные аргументы

свернуть все

Объединенные данные кадра, возвращенные в виде таблицы.

Представлен в R2020a