MATLAB Answers

How can I display a MATLAB table in a figure?

2,392 views (last 30 days)
I have a MATLAB table where each of the variables contains a single column of data.  How can I display the table in a figure?

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 17 Nov 2015
You can either use "uitable" or a more complicated series of commands depending on how you want the table to look.
For example, let us assume you have a table defined by the following code:
LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
T = table(Age,Height,Weight,'RowNames',LastName);
1.) If you want the table to have adjustable-width columns and a more stylized look, execute the following "uitable" command to display the table "T" in a figure:
uitable('Data',T{:,:},'ColumnName',T.Properties.VariableNames,...
'RowName',T.Properties.RowNames,'Units', 'Normalized', 'Position',[0, 0, 1, 1]);
You can refer to the following documentation link for more information on "uitable":
2.) If you want the table to look very similar to how it looks when outputted in the MATLAB command window, execute the following series of commands to display the table "T" in a figure:
% Get the table in string form.
TString = evalc('disp(T)');
% Use TeX Markup for bold formatting and underscores.
TString = strrep(TString,'<strong>','\bf');
TString = strrep(TString,'</strong>','\rm');
TString = strrep(TString,'_','\_');
% Get a fixed-width font.
FixedWidth = get(0,'FixedWidthFontName');
% Output the table using the annotation command.
annotation(gcf,'Textbox','String',TString,'Interpreter','Tex',...
'FontName',FixedWidth,'Units','Normalized','Position',[0 0 1 1]);
You may find the following documentation links useful:
 

  5 Comments

Show 2 older comments
andrea
andrea on 17 May 2020
I used the second method to create a figure with a table but, when i try to save it as a .eps and i import it on latex there is a border which i would like to eliminate, how can i do it ?
Dan Hendrickson
Dan Hendrickson on 27 May 2020
Andrea,
Please contact MathWorks technical support if you are still having an issue removing the border. They may be able to assist further.
Best,
Dan
Daniel Leibundgut
Daniel Leibundgut on 29 Jul 2020
How can I adjust the displ,ay format of the data? Set the number of digits per column individually?

Sign in to comment.

More Answers (1)

Amir Pasha Zamani
Amir Pasha Zamani on 30 Sep 2020
The second method did´nt work for me bacause my table is very big and the llok of it is not appropriate when it is shown in Mtalab workspace
The first method I need to run, but I get this errorÑ
error:
Cannot concatenate the table variables 'Day_indx' and 'DATE', because their types are double and cell
I can not change the types of my variables, I needthem the way they are!
Any suggestion ?

  0 Comments

Sign in to comment.

Products


Release

R2015b

Community Treasure Hunt

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

Start Hunting!