How do I display two separate tables with 2 column headings the same side-by-side?

33 Ansichten (letzte 30 Tage)
I need to display two separate tables side by side with different row lengths and both tables have the same column headings.
Please see the expected table for how the data should look like.
Thank you in advance
  1 Kommentar
dpb
dpb am 15 Dez. 2019
You'll have to write the data as you want explicitly; a MATLAB table can't contain columns with duplicate variable names nor empty rows. The latter you could handle by just empty data; the first is inviolate rule.
It depends upon what you really mean by "display" as to what your choices are...

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Adam Danz
Adam Danz am 15 Dez. 2019
Bearbeitet: Adam Danz am 15 Dez. 2019
First you need to pad the shorter table so it matches the same number of rows as the longer table. The two decisions you need to make are 1) what value should be used as a pad and 2) where should the padded rows be added - to the end, beginning, at certain rows, etc. This demo pads table 2 with NaN values at the end of the table.
% Create demo data, T2 has less rows than T1; both have same headers.
T1 = table({'A';'B';'C';'D';'E'},rand(5,1),rand(5,1),'VariableNames',{'HighFiberDiet','Aerobic','Anaerobic'});
T2 = table({'A';'B';'C';'D'},rand(4,1),rand(4,1),'VariableNames',{'HighFiberDiet','Aerobic','Anaerobic'});
% Pad T2 to match the number of rows in T1; this creates a table of
% NaN values and adds them to T2.
T2Pad = [T2;array2table(nan(size(T1,1)-size(T2,1),size(T2,2)),'VariableNames',T2.Properties.VariableNames)];
Now T2Pad and T1 have the same number of rows.
To concatenate both tables with the same headers side-by-side, you can use mergevars() (requires Matlab release >=r2018a) along with the MergeAsTable option to create two sub-tables. I named the two super-tables Table_1 and Table_2.
T3 = [mergevars(T1,T1.Properties.VariableNames,'NewVariableName','Table_1','MergeAsTable',true),...
mergevars(T2Pad,T2Pad.Properties.VariableNames,'NewVariableName','Table_2','MergeAsTable',true)];
The result:
T3 =
5×2 table
Table_1 Table_2
HighFiberDiet Aerobic Anaerobic HighFiberDiet Aerobic Anaerobic
______________________________________ _____________________________________
{'A'} 0.081273 0.11895 {'A' } 0.70981 0.086412
{'B'} 0.84107 0.86276 {'B' } 0.50521 0.21126
{'C'} 0.7004 0.94128 {'C' } 0.27705 0.30743
{'D'} 0.61522 0.70038 {'D' } 0.88835 0.64141
{'E'} 0.013579 0.39019 {[NaN]} NaN NaN

Weitere Antworten (0)

Kategorien

Mehr zu Data Type Identification finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by