how do I plot a table to a figure?

54 Ansichten (letzte 30 Tage)
Jason
Jason am 3 Nov. 2015
Bearbeitet: Jason am 17 Nov. 2015
I'm playing with tables because I liked how it's displayed and I'd like to display the table in a figure. Is there a simple way to do this (built in function?) or will I need to create a function that will do this somehow?
Example
LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];
T = table(Age,Height,Weight,BloodPressure,'RowNames',LastName)
T =
Age Height Weight BloodPressure
___ ______ ______ _______________
Smith 38 71 176 124 93
Johnson 43 69 163 109 77
Williams 38 64 131 125 83
Jones 40 67 133 117 75
Brown 49 64 119 122 80
I'd like T displayed in a figure that looks like it's displayed in the command window. Any ideas?
Thanks!

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 3 Nov. 2015
Tlines = strsplit( evalc(T), '\n');
monofont = get(0,'FixedWidthFontName');
h = uicontrol('Style', 'edit', 'String', Tlines, 'Enable', 'disable', 'Font', monofont, 'Position', ......);
  2 Kommentare
Jason
Jason am 3 Nov. 2015
Hi Walter, Thanks for the code, but evalc(T) doesn't work with a table. Am I supposed to convert the table to some other format first?
Jason
Jason am 17 Nov. 2015
Bearbeitet: Jason am 17 Nov. 2015
I figured out what I think Walter was doing.
If I replace the first line with
Tlines = strsplit('disp(evalc(T))', '\n');
the rest works.
Here's what I ended up doing:
% Set up an example table.
LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];
T = table(Age,Height,Weight,BloodPressure,'RowNames',LastName);
% 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]);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Tables finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by