uitable

Creates a table in a figure.

Syntax

h = uitable()

h = uitable(property, value, ...)

h = uitable(parent, property, value, ...)

Inputs

parent
Handle of a container object, which could be a figure, frame, uipanel, or uibuttongroup.
Type: double | integer
property, value
'backgroundcolor'
Specifies the background color. Valid values are 'transparent' or a real vector specifying RGB values in the range 0-255 or 0-1.
Type: string | vector
'celleditcallback'
Callback function that is triggered when a value is changed in a cell in h.
If value is a function handle, it must be a function that takes two arguments: the first is the handle of the uicontrol, and the second is the event data to the uicontrol. Activate passes empty data to the second argument if there is no data to the uicontrol.
If value is a string, it must represent a function handle or a function name.
If value is a cell, it must contain the function name/function handle in the first cell element and parameters to pass to the callback function in the additional elements.
Type: cell | functionhandle | string
'columneditable'
Specifies the column(s) which are editable. Valid values are true(default), false, or matrix of size (1, n) where m is the number of column(s) with Boolean value(s) indicating which column(s) are editable.
Type: Boolean | matrix
'columnformat'
Specifies the column formats. The value must be a cell, specifying values of:
  • 'char'(left justified data, default)
  • 'numeric'(right justified data)
  • [](default)
For 'data', of type mtx, this property is ignored and values are always right justified.
Type: cell
'columnname'
Specifies the column labels of h. Valid values are 'numbered'(default) or cell with label names.
Type: string | cell
'columnwidth'
Specifies the width of the columns. By default, the value is 'auto', where column widths are automatically adjusted. Individual column widths can be defined in a cell array of size (1, n), where n is the number of columns in 'data'. The values in each of the cells specify the width of the individual column(s).
Type: cell | string
'data'
Table data. If the data type is cell, the cell elements can only be one of the following types scalar_int_bool_complex_string. Scalar values in for a cell data type can also be handles to a uicontrol widgets of 'style' 'checkbox', 'radiobutton', 'listbox', 'popupmenu'
Type: cell | mat
'enable'
Specifies if h is enabled. Valid values are 'on'(default) and 'off'.
Type: string
'fontangle'
Specifies angle of the displayed font. Valid values are 'regular'(default) and 'italic'.
Type: string
'fontname'
Specifies name of the displayed font.
Type: string
'fontsize'
Specifies size of the displayed font.
Type: scalar
'fontweight'
Specifies weight of the displayed font. Valid values are 'normal'(default) and 'bold'.
Type: string
'parent'
Specifies the parent.
Type: scalar
'position'
Position and size of h. Value is specified as a vector of form: [left top width height]. If 'units' has a value of 'normalized', values must be between 0 to 1.
Type: vector
'rowheight'
Specifies the height of the row(s). By default, the value is 'auto', where row height(s) are automatically adjusted. Individual row height(s) can be defined in a cell of size (1, n), where n is the number of row(s). The values in cell will specify the height for the individual row(s).
Type: cell | string
'rowname'
Specifies the row labels of h. Valid values are 'numbered'(default) or cell with label names.
Type: string | cell
'tag'
User-defined string to tag graphical control objects.
Type: string
'tooltipstring'
Tooltip to display.
Type: string
'units'
Specifies units of measurement. Valid values are 'pixels'(default) and 'normalized'. Value 'pixel' indicates that h has a fixed size and position specified by 'position'. Value 'normalized' indicates that h will be resized if parent is resized.
Type: string
'userdata'
User-defined numerical data.
Type: complex | mtx | scalar
'visible'
Specifies if h is visible. Valid values are 'on'(default) and 'off'.
Type: string

Outputs

h
Handle of the uitable.

Examples

Display matrix data in a table:
uitable('data', rand(3, 3));
Display cell array data in a table:
uitable('data', {'Apple',2,true;'Banana',3,true;'Coco',5,false});
Display matrix data with specific column widths and names:
h = uitable('data', rand(2, 3), 'columnwidth', {50, 100, 150}, 'columnname', {'col1', 'col2', 'sum'});
Display matrix data along with a callback function with input arguments when the cell values are edited:
function out = callbackfunc(h,callstate,argument1,argument2)
    printf('In celledit callback, arg1 [%s], arg2 [%d]\n', argument1, argument2)
end
h = uitable('data', rand(2, 3), 'celleditcallback',  {@callbackfunc, 'foo', 1});
Display a table with uicontrol

function foo(handle, callstate)
  disp('in celleditcallback: foo')
end

function out = checkboxcb(h,callstate,argument1,argument2)
  disp('in checkboxcb callback')
end

function out = radiocb(h,callstate,argument1,argument2)
  disp('in radiocb callback')
end

cb = uicontrol('style', 'checkbox', 'callback', {@checkboxcb,1,2});
rb = uicontrol('style', 'radio', 'callback', {@radiocb,1,2}, 'value', 1, 'string', 'radio1');

data  = {cb 'a' 'b'; rb 'txt' 6};

t = uitable('data', data, 'rowname', {'one', 'two'}, 'celleditcallback',  @foo);