Массивы таблиц полезны для хранения табличных данных в качестве MATLAB® переменные. Для примера можно вызвать readtable
функция для создания массива таблиц из электронной таблицы.
Table
Компоненты UI, напротив, являются компонентами пользовательского интерфейса, которые отображают табличные данные в приложения. Начиная с R2018a, типы данных, которые вы можете отображение в Table
Компоненты UI включают массивы таблиц. Только приложения и рисунки App Designer, созданные с помощью uifigure
поддержка функций table
массивы.
Когда вы отображаете данные массива таблиц в приложениях, можно использовать интерактивные функции для определенных типов данных. И в отличие от других типов массивов, которые Table
Поддержка компонентов UI, данные массива таблиц отображаются не в соответствии с ColumnFormat
свойство Table
Компонент UI.
В Table
Компонент пользовательского интерфейса, логические значения отображаются как флажки. true
значения проверяются, в то время как false
значения не проверяются. Когда ColumnEditable
свойство Table
Компонент UI true
пользователь может установить и снять флажки в приложении.
fig = uifigure; tdata = table([true; true; false]); uit = uitable(fig,'Data',tdata); uit.Position(3) = 130; uit.RowName = 'numbered';
categorical
значения могут отображаться как раскрывающиеся списки или как текст. Категории появляются в раскрывающихся списках, когда ColumnEditable
свойство Table
Компонент UI true
. В противном случае категории отображаются как текст без выпадающего списка.
fig = uifigure; cnames = categorical({'Blue';'Red'},{'Blue','Red'}); w = [400; 700]; tdata = table(cnames,w,'VariableNames',{'Color','Wavelength'}); uit = uitable(fig,'Data',tdata,'ColumnEditable',true);
Если на categorical
массив не защищен, пользователи могут добавлять новые категории в запущенном приложении, вводя камеру.
datetime
значения отображаются в соответствии с Format
свойство соответствующей табличной переменной (a datetime
массив).
fig = 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(fig,'Data',tdata);
Чтобы изменить формат, используйте запись через точку, чтобы задать Format
свойство табличной переменной. Затем замените данные в Table
Компонент UI.
tdata.Date.Format = 'dd/MM/uuuu';
uit.Data = tdata;
Когда ColumnEditable
свойство Table
Компонент UI true
пользователи могут изменять значения дат в приложении. Когда столбец можно редактировать, приложение ожидает входные значения, которые соответствуют Format
свойство datetime
массив. Если пользователь вводит недопустимую дату, значение, отображаемое в таблице NaT
.
duration
значения отображаются в соответствии с Format
свойство соответствующей табличной переменной (a duration
массив).
fig = uifigure; mtime = duration([0;0],[1;1],[20;30]); dist = [10.51; 10.92]; tdata = table(mtime,dist,'VariableNames',{'Time','Distance'}); uit = uitable(fig,'Data',tdata);
Чтобы изменить формат, используйте запись через точку, чтобы задать Format
свойство табличной переменной.
tdata.Time.Format = 's';
uit.Data = tdata;
Камеры, содержащие duration
значения не редактируются в запущенном приложении, даже когда ColumnEditable
от Table
Компонент UI true
.
Нескалярные значения отображаются в приложении так же, как и в Командном окне. Для примера этот массив таблицы содержит трехмерные массивы и struct
массивы.
fig = uifigure; arr = {rand(3,3,3); rand(3,3,3)}; s = {struct; struct}; tdata = table(arr,s,'VariableNames',{'Array','Structure'}); uit = uitable(fig,'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
The Table
Компонент обеспечивает аналогичную презентацию. Выбор элемента в RGB
столбец выбирает все подстолбцы в этой строке. Значения в подстолбцах не редактируются в запущенном приложении, даже когда ColumnEditable
свойство Table
Компонент UI true
.
fig = uifigure;
uit = uitable(fig,'Data',tdata);
Отсутствующие значения отображаются как индикаторы в соответствии с типом данных:
Отсутствующие строки отображаются следующим <missing>
.
Неопределенные categorical
значения отображаются следующим <undefined>
.
Недопустимые или неопределенные числа или duration
значения отображаются следующим NaN
.
Недопустимые или неопределенные datetime
значения отображаются следующим NaT
.
Если на ColumnEditable
свойство Table
Компонент UI true
затем пользователь может исправить значения в запущенном приложении.
fig = 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(fig,'Data',tdata,'ColumnEditable',true);
В этом приложении показано, как отобразить Table
Компонент UI в приложении, которое использует данные массива таблиц. Массив таблицы содержит numeric
, logical
, categorical
, и многополюсные переменные.
The StartupFcn
коллбэк загружает электронную таблицу в массив таблиц. Затем подмножество данных отображений и строится в приложении. На одном графике отображаются исходные данные таблицы. Другой график первоначально показывает те же данные таблицы, а затем обновляется, когда пользователь редактирует значение или сортирует столбец в Table
Компонент UI.