How to save uitable() to PNG

69 ビュー (過去 30 日間)
newbie9
newbie9 2020 年 3 月 31 日
回答済み: Swaroop 2022 年 11 月 5 日
I am trying to use uitable() to convert my Table to a PNG, but I'm having trouble saving it.
Using R2018a, no fancy add-ons
t = array2table(zeros(4,1));
t.Properties.VariableNames{'Var1'} = 'id';
t.id(:) = 1;
t.fieldA = {'a'; 'b'; 'c'; 'd'};
t.GroupCount = [22; 1; 19; 0];
f = uifigure;
uit = uitable(f, 'Data', t);
Note that f = figure doesn't work, otherwise it would be easy to save as PNG:
f=figure;
uit = uitable(f, 'Data', t);
Error using uitable
Functionality not supported with figures created with the figure function. For more information, see Graphics Support in App Designer.

回答 (2 件)

newbie9
newbie9 2020 年 4 月 1 日
I asked on StackOverflow and got an answer that worked:
f = figure;
uit = uitable(f, 'Data', table2cell(t));
uit.ColumnName={t.Properties.VariableNames{:}};
uit.RowName=[]; %removing default row numbering as in your uitable
saveas(f, 'figname.png');
As explained in the answer on StackOverflow, f = figure with uitable requires a cell array, not a table.

Swaroop
Swaroop 2022 年 11 月 5 日
There is a better solution now if you are using version 2020b or higher
Instead of figure handle use a uifigure handle. Add all the styling you want and export the uifigure as image or PDF using exportapp(). This method is much more flexible than using a figure handle.

カテゴリ

Help Center および File ExchangeMigrate GUIDE Apps についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by