Внешнее соединение между двумя таблицами или расписаниями
C = outerjoin(A,B)
C = outerjoin(A,B,Name,Value)
[C,ia,ib] = outerjoin(___)
составляет таблицу или расписание, C = outerjoin(A,B)
C
, как внешнее соединение между A
и B
совпадением строк с помощью всех переменных с тем же именем как ключевые переменные. Можно выполнить внешние соединения только на определенных комбинациях таблиц и расписаний.
Если A
является таблицей, то B
должен быть таблицей. outerjoin
возвращает C
как таблицу.
Если A
является расписанием, то B
может быть или таблицей или расписанием. outerjoin
возвращает C
как расписание для любой комбинации входных параметров.
Внешнее соединение включает строки, которые соответствуют между A
и B
, и также несопоставленными строками или от A
или от B
, всех относительно ключевых переменных. C
содержит все переменные и от A
и от B
, включая ключевые переменные.
Метки строки A
и B
могут быть ключевыми переменными. Метки строки являются именами строки таблицы, или времена строки расписания.
выполняет операцию внешнего соединения с дополнительными опциями, заданными одним или несколькими аргументами пары C = outerjoin(A,B,Name,Value)
Name,Value
.
также возвращает индексные векторы, [C,ia,ib] = outerjoin(___)
ia
и ib
, указывая на соответствие между строками в C
и теми в A
и B
соответственно. Можно использовать этот синтаксис с любым из входных параметров в предыдущих синтаксисах.
Составьте таблицу, A
.
A = table([5;12;23;2;15;6],... {'cheerios';'pizza';'salmon';'oreos';'lobster';'pizza'},... 'VariableNames',{'Age','FavoriteFood'},... 'RowNames',{'Amy','Bobby','Holly','Harry','Marty','Sally'})
A=6×2 table
Age FavoriteFood
___ ____________
Amy 5 'cheerios'
Bobby 12 'pizza'
Holly 23 'salmon'
Harry 2 'oreos'
Marty 15 'lobster'
Sally 6 'pizza'
Составьте таблицу, B
, с одной переменной вместе с A
, названным FavoriteFood
.
B = table({'cheerios';'oreos';'pizza';'salmon';'cake'},... [110;160;140;367;243],... {'A-';'D';'B';'B';'C-'},... 'VariableNames',{'FavoriteFood','Calories','NutritionGrade'})
B=5×3 table
FavoriteFood Calories NutritionGrade
____________ ________ ______________
'cheerios' 110 'A-'
'oreos' 160 'D'
'pizza' 140 'B'
'salmon' 367 'B'
'cake' 243 'C-'
Используйте функцию outerjoin
, чтобы составить новую таблицу, C
, с данными из таблиц A
и B
.
C = outerjoin(A,B)
C=7×5 table
Age FavoriteFood_A FavoriteFood_B Calories NutritionGrade
___ ______________ ______________ ________ ______________
NaN '' 'cake' 243 'C-'
5 'cheerios' 'cheerios' 110 'A-'
15 'lobster' '' NaN ''
2 'oreos' 'oreos' 160 'D'
12 'pizza' 'pizza' 140 'B'
6 'pizza' 'pizza' 140 'B'
23 'salmon' 'salmon' 367 'B'
Таблица C
содержит отдельную переменную для ключевой переменной от A
, названного FavoriteFood_A
и ключевой переменной от B
, названного FavoriteFood_B
.
Составьте таблицу, A
.
A = table({'a' 'b' 'c' 'e' 'h'}',[1 2 3 11 17]',... 'VariableNames',{'Key1' 'Var1'})
A=5×2 table
Key1 Var1
____ ____
'a' 1
'b' 2
'c' 3
'e' 11
'h' 17
Составьте таблицу, B
, с общими ценностями в переменном Key1
между таблицами A
и B
, но также и содержащий строки со значениями Key1
, не существующего в A
.
B = table({'a','b','d','e'}',[4;5;6;7],... 'VariableNames',{'Key1' 'Var2'})
B=4×2 table
Key1 Var2
____ ____
'a' 4
'b' 5
'd' 6
'e' 7
Используйте функцию outerjoin
, чтобы составить новую таблицу, C
, с данными из таблиц A
и B
. Объедините значения ключа в единственную переменную в выходной таблице, C
.
C = outerjoin(A,B,'MergeKeys',true)
C=6×3 table
Key1 Var1 Var2
____ ____ ____
'a' 1 4
'b' 2 5
'c' 3 NaN
'd' NaN 6
'e' 11 7
'h' 17 NaN
Переменные в таблице C
, которая прибыла из A
, содержат нулевые значения в строках, которые не имеют никакого соответствия от B
. Точно так же переменные в C
, который прибыл из B
, содержат нулевые значения в тех строках, которые не имели никакого соответствия от A
.
Составьте таблицу, A
.
A = table({'a' 'b' 'c' 'e' 'h'}',[1 2 3 11 17]',... 'VariableNames',{'Key1' 'Var1'})
A=5×2 table
Key1 Var1
____ ____
'a' 1
'b' 2
'c' 3
'e' 11
'h' 17
Составьте таблицу, B
, с общими ценностями в переменном Key1
между таблицами A
и B
, но также и содержащий строки со значениями Key1
, не существующего в A
.
B = table({'a','b','d','e'}',[4;5;6;7],... 'VariableNames',{'Key1' 'Var2'})
B=4×2 table
Key1 Var2
____ ____
'a' 4
'b' 5
'd' 6
'e' 7
Используйте функцию outerjoin
, чтобы составить новую таблицу, C
, с данными из таблиц A
и B
. Подойдите строки с общими ценностями в ключевой переменной, Key1
, но также и сохраните строки, значения ключа которых не имеют соответствия.
Кроме того, возвратите индексные векторы, ia
и ib
, указывающий на соответствие между строками в C
и строками в A
и B
соответственно.
[C,ia,ib] = outerjoin(A,B)
C=6×4 table
Key1_A Var1 Key1_B Var2
______ ____ ______ ____
'a' 1 'a' 4
'b' 2 'b' 5
'c' 3 '' NaN
'' NaN 'd' 6
'e' 11 'e' 7
'h' 17 '' NaN
ia = 6×1
1
2
3
0
4
5
ib = 6×1
1
2
0
3
4
0
Индексный ia
векторов и ib
содержат нули, чтобы указать на строки в таблице C
, которые не соответствуют строкам в таблицах A
или B
, соответственно.
Составьте таблицу, A
.
A = table({'a' 'b' 'c' 'e' 'h'}',[1 2 3 11 17]',... 'VariableNames',{'Key1' 'Var1'})
A=5×2 table
Key1 Var1
____ ____
'a' 1
'b' 2
'c' 3
'e' 11
'h' 17
Составьте таблицу, B
, с общими ценностями в переменном Key1
между таблицами A
и B
, но также и содержащий строки со значениями Key1
, не существующего в A
.
B = table({'a','b','d','e'}',[4;5;6;7],... 'VariableNames',{'Key1' 'Var2'})
B=4×2 table
Key1 Var2
____ ____
'a' 4
'b' 5
'd' 6
'e' 7
Используйте функцию outerjoin
, чтобы составить новую таблицу, C
, с данными из таблиц A
и B
. Проигнорируйте строки в B
, значения ключа которого не совпадают ни с какими строками в A
.
Кроме того, возвратите индексные векторы, ia
и ib
, указывающий на соответствие между строками в C
и строками в A
и B
соответственно.
[C,ia,ib] = outerjoin(A,B,'Type','left')
C=5×4 table
Key1_A Var1 Key1_B Var2
______ ____ ______ ____
'a' 1 'a' 4
'b' 2 'b' 5
'c' 3 '' NaN
'e' 11 'e' 7
'h' 17 '' NaN
ia = 5×1
1
2
3
4
5
ib = 5×1
1
2
0
4
0
Все значения ia
являются ненулевым указанием, что все строки в C
имеют соответствующие строки в A
.
Создайте два расписания, A
и B
. Они имеют несколько раз строки вместе, но каждый также включает времена строки, которые не находятся в другом расписании.
A = timetable(seconds([1;2;4;6]),[1 2 3 11]')
A=4×1 timetable
Time Var1
_____ ____
1 sec 1
2 sec 2
4 sec 3
6 sec 11
B = timetable(seconds([2;4;6;7]),[4 5 6 7]')
B=4×1 timetable
Time Var1
_____ ____
2 sec 4
4 sec 5
6 sec 6
7 sec 7
Объедините A
и B
с внешним соединением. C
подходит строки с общими временами строки, но также и включает строки, которые не имеют соответствий.
C = outerjoin(A,B)
C=5×2 timetable
Time Var1_A Var1_B
_____ ______ ______
1 sec 1 NaN
2 sec 2 4
4 sec 3 5
6 sec 11 6
7 sec NaN 7
Объедините A
и B
, но проигнорируйте строки в B
, времена строки которого не совпадают ни с какими временами строки в A
.
D = outerjoin(A,B,'Type','left')
D=4×2 timetable
Time Var1_A Var1_B
_____ ______ ______
1 sec 1 NaN
2 sec 2 4
4 sec 3 5
6 sec 11 6
A, B
Входные таблицыВходные таблицы, заданные как таблицы или как расписания.
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Имя
должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'Ключи', 2
использования вторая переменная в A
и вторая переменная в B
как ключевые переменные.ключи
Переменные, чтобы использовать в качестве ключейПеременные, чтобы использовать в качестве ключей, заданных как пара, разделенная запятой, состоящая из 'Keys'
и положительного целого числа, вектора положительных целых чисел, вектора символа, массива ячеек из символьных векторов, массива строк или логического вектора.
Вы не можете использовать аргумент в виде пар "имя-значение" 'Keys'
с аргументы в виде пар "имя-значение" 'RightKeys'
и 'LeftKeys'
.
Метки строки могут быть ключами, одними или в сочетании с другими ключевыми переменными. Для получения дополнительной информации смотрите раздел Tips.
Пример: 'Ключи', [1 3]
использует первые и третьи переменные в A
и B
как ключевые переменные.
'LeftKeys'
Переменные, чтобы использовать в качестве ключей в A
Переменные, чтобы использовать в качестве ключей в A
, заданном как пара, разделенная запятой, состоящая из 'LeftKeys'
и положительного целого числа, вектора положительных целых чисел, вектора символа, массива ячеек из символьных векторов, массива строк или логического вектора.
Необходимо использовать аргумент в виде пар "имя-значение" 'LeftKeys'
в сочетании с аргументом в виде пар "имя-значение" 'RightKeys'
. 'LeftKeys'
и 'RightKeys'
оба должны задать то же количество ключевых переменных. значения ключа пар outerjoin
на основе их порядка.
Метки строки могут быть ключами, одними или в сочетании с другими ключевыми переменными. Для получения дополнительной информации смотрите раздел Tips.
Пример: 'LeftKeys', 1
использование только первая переменная в как ключевая переменная.
'RightKeys'
Переменные, чтобы использовать в качестве ключей в B
Переменные, чтобы использовать в качестве ключей в B
, заданном как пара, разделенная запятой, состоящая из 'RightKeys'
и положительного целого числа, вектора положительных целых чисел, вектора символа, массива ячеек из символьных векторов, массива строк или логического вектора.
Необходимо использовать аргумент в виде пар "имя-значение" 'RightKeys'
в сочетании с аргументом в виде пар "имя-значение" 'LeftKeys'
. 'LeftKeys'
и 'RightKeys'
оба должны задать то же количество ключевых переменных. значения ключа пар outerjoin
на основе их порядка.
Метки строки могут быть ключами, одними или в сочетании с другими ключевыми переменными. Для получения дополнительной информации смотрите раздел Tips.
Пример: 'RightKeys', 3
использования только третья переменная в B
как ключевая переменная.
'MergeKeys'
— Mergefalse
(значение по умолчанию) | true
| 0
| 1
Объедините ключевой флаг, заданный как пара, разделенная запятой, состоящая из 'MergeKeys'
и или false
, true
, 0
или 1
.
|
Это поведение по умолчанию. |
|
|
'LeftVariables'
Переменные от A
, чтобы включать в C
Переменные от A
, чтобы включать в C
, заданный как пара, разделенная запятой, состоящая из 'LeftVariables'
и положительного целого числа, вектора положительных целых чисел, вектора символа, массива ячеек из символьных векторов, массива строк или логического вектора.
Можно использовать 'LeftVariables'
, чтобы включать или исключить ключевые переменные, а также неключевые переменные от вывода, C
.
По умолчанию outerjoin
включает все переменные от A
.
'RightVariables'
Переменные от B
, чтобы включать в C
Переменные от B
, чтобы включать в C
, заданный как пара, разделенная запятой, состоящая из 'RightVariables'
и положительного целого числа, вектора положительных целых чисел, вектора символа, массива ячеек из символьных векторов, массива строк или логического вектора.
Можно использовать 'RightVariables'
, чтобы включать или исключить ключевые переменные, а также неключевые переменные от вывода, C
.
По умолчанию outerjoin
включает все переменные от B
.
Ввод
Тип операции внешнего соединения'full'
(значение по умолчанию) | 'left'
| 'right'
Тип операции внешнего соединения, заданной как пара, разделенная запятой, состоящая из 'Type'
и или 'full'
, 'left'
или 'right'
.
Для левого внешнего соединения C
содержит строки, соответствующие значениям ключа в A
, которые не совпадают ни с какими значениями в B
, но не наоборот.
Для правильного внешнего соединения C
содержит строки, соответствующие значениям ключа в B
, которые не совпадают ни с какими значениями в A
, но не наоборот.
По умолчанию outerjoin
делает полное внешнее соединение и включает несопоставленные строки и от A
и от B
.
C
Внешнее соединение от A
и B
Внешнее соединение от A
и B
, возвращенного как таблица. Выходная таблица, C
, содержит одну строку для каждой пары строк в таблицах A
и B
, которые совместно используют ту же комбинацию значений ключа. Если A
и B
содержат переменные с тем же именем, outerjoin
добавляет уникальный суффикс к соответствующим именам переменных в C
. Переменные в C
, который прибыл из A
, содержат нулевые значения в тех строках, которые не имели никакого соответствия от B
. Точно так же переменные в C
, который прибыл из B
, содержат нулевые значения в тех строках, которые не имели никакого соответствия от A
.
В целом, если существуют строки m
в строках таблицы A
и n
в таблице B
, что все содержат ту же комбинацию значений в ключевых переменных, таблица C
содержит строки m*n
для той комбинации. C
также содержит строки, соответствующие комбинациям значения ключа в одной входной таблице, которые не совпадают ни с какой строкой другая входная таблица.
C
содержит горизонтальную конкатенацию A(ia,LeftVars)
и B(ib,RightVars)
, отсортированного по значениям в ключевых переменных. По умолчанию LeftVars
состоит из всех переменных A
, и RightVars
состоит из весь от B
. В противном случае LeftVars
состоит из переменных, заданных аргументом в виде пар "имя-значение" 'LeftVariables'
, и RightVars
состоит из переменных, заданных аргументом в виде пар "имя-значение" 'RightVariables'
.
Можно сохранить дополнительные метаданные, такие как описания, переменные модули, имена переменных и имена строки в таблице. Для получения дополнительной информации смотрите раздел Properties table
.
ia
— Индексируйте к A
Индексируйте к A
, возвращенному как вектор - столбец. Каждый элемент ia
идентифицирует строку в таблице A
, которая соответствует той строке в выходной таблице, C
. Векторный ia
содержит нули, чтобы указать на строки в C
, которые не соответствуют строкам в A
.
ib
Индексируйте к B
Индексируйте к B
, возвращенному как вектор - столбец. Каждый элемент ib
идентифицирует строку в таблице B
, которая соответствует той строке в выходной таблице, C
. Векторный ib
содержит нули, чтобы указать на строки в C
, которые не соответствуют строкам в B
.
Переменная раньше совпадала и комбинировала данные между входными таблицами, A
и B
.
Метки строки из входных таблиц A
и B
могут быть ключами, одними или в сочетании с другими ключевыми переменными. Метки строки являются именами строки таблицы или времена строки расписания. В целом outerjoin
копирует метки строки с входной таблицы A
к выходной таблице C
.
Если A
не имеет никаких меток строки, то C
не имеет никаких меток строки.
Если A
имеет метки строки, то outerjoin
копирует метки строки с A
, чтобы создать метки строки в C
.
Если вы задаете метки строки и от A
и от B
как пара ключей, то outerjoin
объединяет метки строки от B
в метки строки C
при необходимости.
Если вы задаете метки строки A
как ключ, но не задаете метки строки B
как соответствующий ключ, то outerjoin
создает метки строки по умолчанию в C
при необходимости.
Если и A
и B
являются таблицами, но вы не задаете имена строки ни одной входной таблицы как ключ, то outerjoin
не создает имена строки в C
.
Вы не можете выполнить внешнее соединение с помощью меток строки A
как левый ключ и переменная B
как правильный ключ. Чтобы выполнить внешнее соединение, преобразуйте метки строки A
к табличной переменной и используйте новую табличную переменную в качестве ключа.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.