В этом примере показано, как отобразить таблицу в приложении с помощью uitable функция. В нем также показано, как изменить внешний вид таблицы и как ограничить редактирование таблицы в запущенном приложении.
uitable создает пустую таблицу пользовательского интерфейса на рисунке.
fig = uifigure('Position',[100 100 752 250]); uit = uitable('Parent',fig,'Position',[25 50 700 200]);
Загрузите образцы данных пациентов, которые содержат смешанные типы данных, и сохраните их в табличном массиве. Чтобы данные отображались в виде раскрывающегося списка в ячейках компонента таблицы, преобразуйте переменную массива ячеек в категориальный массив. Чтобы отобразить данные в компоненте пользовательского интерфейса таблицы, укажите массив таблицы в качестве значения Data собственность.
load patients t = table(LastName,Age,Weight,Height,Smoker, ... SelfAssessedHealthStatus); t.SelfAssessedHealthStatus = categorical(t.SelfAssessedHealthStatus, ... {'Poor','Fair','Good','Excellent'},'Ordinal',true); uit.Data = t;

Можно настроить отображение таблицы пользовательского интерфейса несколькими способами. Используйте ColumnName для добавления заголовков столбцов.
uit.ColumnName = {'Last Name','Age','Weight', ...
'Height','Smoker','Health Status'};
Чтобы настроить ширину столбцов, укажите ColumnWidth собственность. ColumnWidth свойство - массив ячеек 1-by-N, где N - количество столбцов в таблице. Задайте определенную ширину столбца или используйте 'auto' позволяет MATLAB ® установить ширину на основе содержимого.
uit.ColumnWidth = {'auto',75,'auto','auto','auto',100};
Добавьте нумерованные заголовки строк, установив RowName свойство для 'numbered'.
uit.RowName = 'numbered';
Изменение положения и размера таблицы с помощью Position собственность.
uit.Position = [15 25 565 200];

По умолчанию компоненты пользовательского интерфейса таблицы используют чередование строк и циклический переход через заданные цвета фона до тех пор, пока не будет достигнут конец таблицы. Если установить RowStriping свойство для 'off', компонент пользовательского интерфейса таблицы будет использовать только первый цвет, указанный в BackgroundColor свойство для всех строк. Здесь оставьте чередование строк 'on' и установить три различных цвета для BackgroundColor собственность.
uit.BackgroundColor = [1 1 .9; .9 .95 1;1 .5 .5];

Сделайте все столбцы сортируемыми, установив ColumnSortable свойство для true. Если столбец является сортируемым, при наведении на него курсора мыши в заголовке появляются стрелки.
uit.ColumnSortable = true;

Чтобы ограничить возможность пользователя редактировать данные в таблице, установите ColumnEditable собственность. По умолчанию изменение данных в запущенном приложении невозможно. ColumnEditable свойство для true для столбца позволяет пользователю редактировать данные в этом столбце.
uit.ColumnEditable = [false false true true true true];

Table объект имеет два часто используемых обратного вызова. CellSelectionCallback выполняется, когда пользователь выбирает другую ячейку. CellEditCallback выполняется при изменении пользователем значения в ячейке.
uit.CellEditCallback = @ageCheckCB;
Например, если требуется, чтобы столбец «Возраст» содержал значения между 0 и 120, установите CellEditCallback к такой функции, как эта:
function ageCheckCB(src,eventdata)
if (eventdata.Indices(2) == 2 && ... % check if column 2 (eventdata.NewData < 0 || eventdata.NewData > 120)) tableData = src.Data; tableData{eventdata.Indices(1),eventdata.Indices(2)} = eventdata.PreviousData; src.Data = tableData; % set the data back to its original value warning('Age must be between 0 and 120.') % warn the user end
end
Если пользователь вводит значение, выходящее за пределы допустимого диапазона, функция обратного вызова возвращает предупреждение и возвращает значение ячейки к предыдущему значению.
Для просмотра всех свойств таблицы используйте get команда.
get(uit)
BackgroundColor: [3x3 double]
BeingDeleted: off
BusyAction: 'queue'
ButtonDownFcn: ''
CellEditCallback: @ageCheckCB
CellSelectionCallback: ''
Children: [0x0 handle]
ColumnEditable: [0 0 1 1 1 1]
ColumnFormat: {}
ColumnName: {6x1 cell}
ColumnSortable: 1
ColumnWidth: {'auto' [75] 'auto' 'auto' 'auto' [100]}
ContextMenu: [0x0 GraphicsPlaceholder]
CreateFcn: ''
Data: [100x6 table]
DeleteFcn: ''
DisplayData: [100x6 table]
DisplayDataChangedFcn: ''
Enable: 'on'
Extent: [0 0 0 0]
FontAngle: 'normal'
FontName: 'Helvetica'
FontSize: 12
FontUnits: 'pixels'
FontWeight: 'normal'
ForegroundColor: [0 0 0]
HandleVisibility: 'on'
InnerPosition: [15 25 565 200]
Interruptible: on
KeyPressFcn: ''
KeyReleaseFcn: ''
Layout: [0x0 matlab.ui.layout.LayoutOptions]
OuterPosition: [15 25 565 200]
Parent: [1x1 Figure]
Position: [15 25 565 200]
RearrangeableColumns: off
RowName: 'numbered'
RowStriping: on
StyleConfigurations: [0x3 table]
Tag: ''
Tooltip: ''
Type: 'uitable'
Units: 'pixels'
UserData: []
Visible: on