Give title for Table
280 views (last 30 days)
Show older comments
Elysi Cochin
on 2 May 2021
Commented: Duncan Carlsmith
on 27 May 2024
Is it possible to give title for a table i have displayed as below
If i wanted to give a title 'My Table', how to give it?
Details = [38,71,176,124,93;...
43,69,163,109,77;...
38,64,131,125,83;...
40,67,133,117,75;...
49,64,119,122,80];
T = array2table(Details,...
'VariableNames',{'Age' 'Height' 'Weight' 'BP_High' 'BP_Low'},...
'RowNames',{'Smith';'Johnson';'Williams';'Jones';'Brown'});
disp(T)
0 Comments
Accepted Answer
Adam Danz
on 3 May 2021
Edited: Adam Danz
on 3 May 2021
You could effectively give a title to a table by nesting the table within another single-column table that contains the title.
Details = [38,71,176,124,93;...
43,69,163,109,77;...
38,64,131,125,83;...
40,67,133,117,75;...
49,64,119,122,80];
T = array2table(Details,...
'VariableNames',{'Age' 'Height' 'Weight' 'BP_High' 'BP_Low'},...
'RowNames',{'Smith';'Johnson';'Williams';'Jones';'Brown'});
T = table(T,'VariableNames',{'My Table'}); % Nested table
disp(T)
However, now you'll have to index the table differently. For example, to access Height,
T.('My Table').Height
Or to access the 3rd row,
T.('My Table')(3,:)
or you could un-nest the table,
T = T.('My Table');
6 Comments
More Answers (2)
Walter Roberson
on 3 May 2021
No, table() is designed for programming, not for display purposes.
3 Comments
Walter Roberson
on 3 May 2021
Yes, it is possible to give a title to a table.
filename = fullfile(matlabroot, 'toolbox', 'matlab', 'datatypes', 'tabular', '@tabular', 'disp.m');
edit(filename)
Look close to the end of the first function, somewhere near line 265. You will see code that looks like
[varChars,nestedVarChars,underlines] = getVarNamesDispLines();
disp(char(varChars));
That is the line of code that displays the variable names, and the next few lines of code display headers and then the content. By this point in the code, everything has been computed and put into arrays for later display.
So just before that getVarNamesDispLines(), insert your code that figures out the title to use for the table, and then display it.
Last I recall you were using R2017a. If you were using R2018b or later you could use addprop() https://www.mathworks.com/help/matlab/ref/addprop.html to create a custom table property. Custom table properties are not displayed, but they are stored with the table, so you could addprop() a title, and then in the code for tabular disp, check to see if the property exists and if so then display it.
This is all to answer the question of whether it is possible to give a title to a table: the answer is Yes, you can modify the Mathworks-supplied code to allow for a title. If the question where whether there is any supported method, the answer would be what I originally posted: NO.
Abdul Kalam.A
on 18 Jun 2022
if you want to display in command widow
fprintf(' your title')
tabulations = table(your parameters)
1 Comment
Adam Danz
on 21 Jun 2022
- Don't forget to add a newline (\n) after the fprintf string,
fprintf('your title\n')
2. The table that is printed by the table() command may be truncated if it is too wide or too tall. This is why it's better to use disp
Compare the following outputs:
T = table(rand(500,1), char(randi(26,500,3)+64))
disp(T)
See Also
Categories
Find more on Matrix Indexing 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!