How to vertically concatenate two tables with different sizes

165 views (last 30 days)
For example:
>> A = table(['A1';'A1';'A1'],[1;1;1],[1;1;1],...
'VariableNames',{'Var1' 'Var2' 'Var3'})
A =
Var1 Var2 Var3
____ ____ ____
A1 1 1
A1 1 1
A1 1 1
>> B = table(['B1';'B1'],[2;2],[2;2],...
'VariableNames',{'Var1' 'Var2' 'Var4'})
B =
Var1 Var2 Var4
____ ____ ____
B1 2 2
B1 2 2
How can I vertically concatenate A and B like the following? Thanks!
Var1 Var2 Var3 Var4
____ ____ ____ ____
A1 1 1 NAN
A1 1 1 NAN
A1 1 1 NAN
B1 2 NAN 2
B1 2 NAN 2

Accepted Answer

Walter Roberson
Walter Roberson on 3 Feb 2017
outerjoin(A,B,'MergeKeys', true)
It took me a few minutes to find the right command.

More Answers (1)

Sterling Baird
Sterling Baird on 5 Sep 2020
Edited: Sterling Baird on 5 Sep 2020
Also consider looking at FEX: tblvertcat which builds on outerjoin and supports 2+ tables and shared variable names
tblvertcat(A,B)
>>
Var1 Var2 Var3 Var4
____ ____ ____ ____
A1 1 1 NaN
A1 1 1 NaN
A1 1 1 NaN
B1 2 NaN 2
B1 2 NaN 2

Categories

Find more on Tables in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!