Hi. I want to programatically add a uitable to a subplot position (without using guide). Whilst I have been able to do this, Im not able to fill the subplot region. Is it possible to do this (at least in the horizontal dimension)
This is my code:
% create the data
% Create the column and row names in cell arrays
cnames = {'Z','FMc','FMc','AvgI'};
rnames = {'1','2','3','4','5','6','7','8'};
% Create the uitable
t = uitable(f1,'Data',data,...
'ColumnName',cnames,...
'RowName',rnames,...
'ColumnWidth',{50});
subplot(1,2,2),plot(3)
pos = get(subplot(1,2,2),'position');
delete(subplot(1,2,2))
set(t,'units','normalized')
set(t,'position',pos)
I was wondering if the ColumnWidth variable could somehow be calculated from the subplot width?

 Akzeptierte Antwort

Jan
Jan am 26 Dez. 2016

2 Stimmen

% Auto-resize:
jScroll = findjobj(t);
jTable = jScroll.getViewport.getView;
jTable.setAutoResizeMode(jTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
drawnow;

4 Kommentare

Jason
Jason am 3 Jan. 2017
Thanks, thats perfect!
Spencer G
Spencer G am 23 Aug. 2017
Thanks Jan! Do you know how to auto-resize the rows too? I tried "jTable.AUTO_RESIZE_SUBSEQUENT_ROWS" but it doesn't seem to exist.
Jan
Jan am 23 Aug. 2017
@Spencer G: You are right, there is not auto-resizing of rows. I've found some links about auto-resizing of tables vertically:
But I do not have time to implement this in Matlab currently.
Emily Pitts
Emily Pitts am 28 Jul. 2022
I've been looking for a solution to this for days, and your solution worked perfectly in MATLAB 2022a. Thanks!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Kategorien

Mehr zu Programming finden Sie in Hilfe-Center und File Exchange

Produkte

Gefragt:

am 23 Dez. 2016

Kommentiert:

am 28 Jul. 2022

Community Treasure Hunt

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

Start Hunting!

Translated by