Sub heading in matlab table

56 views (last 30 days)
Davindra Usov
Davindra Usov on 16 Jan 2023
Commented: Davindra Usov on 17 Jan 2023
Hello,
I am trying to create the table shown in the image attached. So far my code generates the table with all the headings but without the 'old fruit' and 'new fruit' headings. How do I add these headings into my code?
table.Properties.VariableNames(1:4) = {'apples','oranges','strawberries','grapefruit'}
writetable(table,'fruit.csv')
thank you

Accepted Answer

Adam Danz
Adam Danz on 16 Jan 2023
Edited: Adam Danz on 16 Jan 2023
There isn't an option to arrange subheadings as described in your attached image.
However, there are several ways to rearrange the table to contain subheadings.
Option 1: nested subheaders
MATLAB R2018b or later
apples = table([3;4],[1;4],'VariableNames',{'old','new'});
oranges = table([3;4],[1;4],'VariableNames',{'old','new'});
strawberries = table([3;4],[1;4],'VariableNames',{'old','new'});
grapefruit = table([3;4],[1;4],'VariableNames',{'old','new'});
fruit = table(apples, oranges, strawberries, grapefruit)
fruit = 2×4 table
apples oranges strawberries grapefruit old new old new old new old new __________ __________ ____________ __________ 3 1 3 1 3 1 3 1 4 4 4 4 4 4 4 4
Option 2: nested subheaders version 2
MATLAB R2018b or later
old = table([3;4],[6;4],[5;3],[1;2], 'VariableNames', {'apples','ornages','strawberries', 'grapefruit'});
new = table([1;4],[1;13],[2;11],[3;3], 'VariableNames', {'apples','ornages','strawberries', 'grapefruit'});
fruit = table(old,new)
fruit = 2×2 table
old new apples ornages strawberries grapefruit apples ornages strawberries grapefruit _______________________________________________ _______________________________________________ 3 6 5 1 1 1 2 3 4 4 3 2 4 13 11 3
Option 3: Store subheaders in a table variable
MATLAB R2013b or later
Note that the use of subheadings above makes indexing difficult. Here's a recommendation that preserves the labels but allows for easier indexing:
fruit = table(["old";"old";"new";"new"], ...
[3;4;1;4],[6;4;1;13],[5;3;2;11],[1;2;3;3], ...
'VariableNames', {'age','apples','oranges','strawberries','grapefruit'})
fruit = 4×5 table
age apples oranges strawberries grapefruit _____ ______ _______ ____________ __________ "old" 3 6 5 1 "old" 4 4 3 2 "new" 1 1 2 3 "new" 4 13 11 3
  1 Comment
Davindra Usov
Davindra Usov on 17 Jan 2023
Thank you so much!! I tried option 2 and it worked!

Sign in to comment.

More Answers (0)

Categories

Find more on Structures in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!