Типы данных массива таблиц в приложениях App Designer

Массивы таблиц полезны для хранения табличных данных в качестве 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

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.

См. также

|

Похожие темы