Ho to reduce the table to 1dim?

I use the GUIDE option and placed a table.
The table size is 4×6.
I want to have it 1×6 -> I tried to delete the extra rows with no success. It keep on returning them when I press Apply/OK

2 Comments

How did you do that?
I added a table with the GUI tool - the default is 4x2
How do i reduce it to 1x2 for ex.?

Answers (1)

A uitable's size is determined by the size of its 'Data' property. So change that:
h = uitable('Data',rand(4,6));
%%To Reduce it:
set(h,'Data',1:6)

7 Comments

Nimrodb
Nimrodb on 13 Feb 2013
Edited: Nimrodb on 13 Feb 2013
thanks.
In what function do I place it? In the table CreateFcn function?
Whereever you want to reduce the size. Whether it's the createfcn or some callback, it's kind of up to you...
Nimrodb
Nimrodb on 13 Feb 2013
Edited: Nimrodb on 13 Feb 2013
Found the solution in the following link (basically it's as Sean wrote)
however, I do have an issue now. I wrote in the CreateFcn:
set(hObject, 'Data', cell(1,6));
Before - the table was:
K>> get(hObject, 'Data')
ans =
'' '' '' '' '' ''
'' '' '' '' '' ''
'' '' '' '' '' ''
'' '' '' '' '' ''
And now, it's:
K>> get(hObject, 'Data')
ans =
[] [] [] [] [] []
Do you know why?
OK - this is what's needed:
c = cellfun(@(x) '',cell(1,6),'uniformoutput',false);
set(hObject, 'Data', c);
Thanks to my friend Ohad who helped me...
Not sure why you need the cellfun():
uitable('Data',cell(1,6))
Just calling the below will create an empty cell.
cell(1,6)
Sean - because I wanted to reduce a table - not add cells to it. As you can see from my prev' comment - the cell type when using your format gave me NaN values ([]) and not cell ('') or whatever this format is

This question is closed.

Asked:

on 13 Feb 2013

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!