Только приложения App Designer и фигуры, созданные с функцией uifigure
, поддерживают массивы table
. Для получения информации об отображающихся табличных данных в традиционных фигурах смотрите Программное приложение который Отображения Таблица.
Табличные массивы полезны для того, чтобы хранить табличные данные как переменные MATLAB®. Например, можно вызвать функцию readtable
, чтобы создать табличный массив из электронной таблицы.
Компоненты пользовательского интерфейса Table
, в отличие от этого, являются компонентами пользовательского интерфейса, которые отображают табличные данные в приложениях. Начиная в R2018a, типы данных, которые можно отобразить в компоненте пользовательского интерфейса Table
, включают табличные массивы.
Когда вы отображаете табличные данные массива в приложениях, можно использовать в своих интересах интерактивные функции для определенных типов данных. И различающиеся другие типы массивов, что Table
поддержка компонентов пользовательского интерфейса, табличные данные массива не отображаются согласно свойству ColumnFormat
компонента пользовательского интерфейса Table
.
В пользовательском интерфейсе Table
логические значения компонента отображаются как флажки. значения true
проверяются, тогда как значения false
неконтролируемы. Когда свойством ColumnEditable
компонента пользовательского интерфейса Table
является true
, пользователь может выбрать и снять флажки в приложении.
f = uifigure;
tdata = table([true; true; false]);
uit = uitable(f,'Data',tdata);
Значения categorical
могут появиться как выпадающие списки или как текст. Категории появляются в выпадающих списках, когда свойством ColumnEditable
компонента пользовательского интерфейса Table
является true
. В противном случае категории отображаются как текст без выпадающего списка.
f = uifigure; cnames = categorical({'Blue';'Red'},{'Blue','Red'}); w = [400; 700]; tdata = table(cnames,w,'VariableNames',{'Color','Wavelength'}); uit = uitable(f,'Data',tdata,'ColumnEditable',true);
Если массив categorical
не защищен, пользователи могут добавить новые категории в запущенном приложении путем ввода в ячейке.
Значения datetime
отображаются согласно свойству Format
соответствующей табличной переменной (массив datetime
).
f = uifigure; dates = datetime([2016,01,17; 2017,01,20],'Format','MM/dd/uuuu'); m = [10; 9]; tdata = table(dates,m,'VariableNames',{'Date','Measurement'}); uit = uitable(f,'Data',tdata);
Чтобы изменить формат, используйте запись через точку, чтобы установить свойство Format
табличной переменной. Затем замените данные в компоненте пользовательского интерфейса Table
.
tdata.Date.Format = 'dd/MM/uuuu';
uit.Data = tdata;
Когда свойством ColumnEditable
компонента пользовательского интерфейса Table
является true
, пользователи могут изменить значения даты в приложении. Когда столбец будет доступен для редактирования, приложение ожидает входные значения, которые соответствуют свойству Format
массива datetime
. Если пользователь вводит недопустимую дату, значением, отображенным в таблице, является NaT
.
Значения duration
отображаются согласно свойству Format
соответствующей табличной переменной (массив duration
).
f = uifigure; mtime = duration([0;0],[1;1],[20;30]); dist = [10.51; 10.92]; tdata = table(mtime,dist,'VariableNames',{'Time','Distance'}); uit = uitable(f,'Data',tdata);
Чтобы изменить формат, используйте запись через точку, чтобы установить свойство Format
табличной переменной.
tdata.Time.Format = 's';
uit.Data = tdata;
Ячейки, содержащие значения duration
, не доступны для редактирования в запущенном приложении, даже когда ColumnEditable
компонента пользовательского интерфейса Table
является true
.
Нескалярные значения отображают в приложении тот же путь, как они отображаются в Командном окне. Например, этот табличный массив содержит массивы struct
и трехмерные массивы.
f = uifigure; arr = {rand(3,3,3); rand(3,3,3)}; s = {struct; struct}; tdata = table(arr,s,'VariableNames',{'Array','Structure'}); uit = uitable(f,'Data',tdata);
Многостолбцовая табличная переменная типа массив отображается как объединенный столбец в приложении, как это делает в Командном окне. Например, переменная RGB
в этом табличном массиве является массивом 3х3.
n = [1;2;3]; rgbs = [128 122 16; 0 66 155; 255 0 0]; tdata = table(n,rgbs,'VariableNames',{'ROI','RGB'})
tdata = 3×2 table ROI RGB ___ _________________ 1 128 122 16 2 0 66 155 3 255 0 0
Компонент пользовательского интерфейса Table
обеспечивает подобное представление. Выбор элемента в столбце RGB
выбирает все подстолбцы в той строке. Значения в подстолбцах не доступны для редактирования в запущенном приложении, даже когда свойством ColumnEditable
компонента пользовательского интерфейса Table
является true
.
f = uifigure;
uit = uitable(f,'Data',tdata);
Отсутствующие значения отображаются как индикаторы согласно типу данных:
Отсутствующие строки отображаются как <missing>
.
Неопределенные значения categorical
отображаются как <undefined>
.
Недопустимые или неопределенные числа или значения duration
отображаются как NaN
.
Недопустимые или неопределенные значения datetime
отображаются как NaT
.
Если свойством ColumnEditable
компонента пользовательского интерфейса Table
является true
, то пользователь может исправить значения в запущенном приложении.
f = uifigure; sz = categorical([1; 3; 4; 2],1:3,{'Large','Medium','Small'}); num = [NaN; 10; 12; 15]; tdata = table(sz,num,'VariableNames',{'Size','Number'}); uit = uitable(f,'Data',tdata,'ColumnEditable',true);
Это приложение показывает, как отобразить компонент пользовательского интерфейса Table
в приложении, которое использует табличные данные массива. Табличный массив содержит numeric
, logical
, categorical
и многостолбцовые переменные.
Коллбэк StartupFcn
загружает электронную таблицу в табличный массив. Затем подмножество отображений данных и построено в приложении. Один график отображает исходные табличные данные. Другой график первоначально показывает те же табличные данные, и затем обновляет, когда пользователь редактирует значение или сортирует столбец в компоненте пользовательского интерфейса Table
.