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

Примечание

Только приложения 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

Значения 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.

Смотрите также

|

Похожие темы