主要内容

场上

创建表用户界面组件

描述

外的=场上控件在当前图中创建表用户界面组件,并返回表格UI组件对象。如果没有可用的图形,MATLAB®调用数字函数来创建一个。

外的=场上(名称,值使用一个或多个名称-值对参数指定表UI组件的属性值。

例子

外的=场上(在指定的父容器中创建表。属性创建的图形可以是父容器数字uifigure函数或子容器(如面板)。的属性值场上类型创建的应用程序略有不同数字uifigure函数。有关更多信息,请参见名称-值对参数

例子

外的=场上(名称,值指定父容器和一个或多个属性值。

例子

全部折叠

从R2018a开始,您可以显示表格表UI组件中的数组数据。(只有当表UI组件位于用金宝appuifigure函数。App Designer使用这种类型的图形来创建应用程序。)

创建表数组t通过调用readtable函数从文件中读取数据。从中选择4个变量和15行t

T =可读的(“patients.xls”);Vars = {“年龄”“收缩”舒张压的“抽烟”};T = T (1:15,vars);

创建一个表UI组件,并指定t作为数据。

FIG = ufigure;Uit = uitable(图,“数据”t);

一个有四栏的表格:“年龄”,“收缩压”,“舒张压”和“吸烟者”。表中填充了数据。“吸烟者”列中的数据显示为已选中或未选中的方框。

显示和编程更新表格表UI组件中的数组数据。(只有当表UI组件位于用金宝appuifigure函数。App Designer使用这种类型的图形来创建应用程序。)

通过从文件中读入海啸数据来创建一个表数组,并在表UI组件中显示数据的子集。

T =可读的(“tsunamis.xlsx”);Vars = {“年”“MaxHeight”“有效性”};T = T (1:20,vars);FIG = ufigure;Uit = uitable(图,“数据”t);

一个包含三列海啸数据的表格:海啸发生年份、最大海啸高度(以米为单位)和海啸的有效性(例如,“可疑海啸”或“确定海啸”)。

控件更新第一行中海啸的有效性数据属性的UI表。

unit . data . validity (1) = {“明确的海啸”};

具有海啸年份、最大高度和有效性的表格。第一行中的条目的有效性值为“definite tsunami”。

控件中的数据,将最大高度数据从米转换为英尺MaxHeight列。

unit . data . maxheight = unit . data . maxheight *3.281;

具有海啸年份、最大高度和有效性的表格。MaxHeight列中的值以英尺为单位。

创建一个应用程序,允许用户对表格数据进行排序和编辑,并在数据发生变化时更新数据可视化。控件创建的图中才支持交互式列排序金宝appuifigure函数。App Designer使用这种类型的图形来创建应用程序。)

首先,创建一个名为tsunamisData.m.在程序文件中:

  • 创建一个表格数组,通过调用readtable函数。

  • 创建一个UI图。

  • 创建一个可排序和可编辑的表UI组件,以显示在图中。存储表格数组到组件的数据财产。

  • 创建一个气泡图来可视化海啸数据,其中气泡的坐标表示海啸的经纬度,气泡的大小表示最大高度。

  • 指定一个DisplayDataChangedFcn回调函数,该函数使用DisplayData属性,当应用程序用户在表格UI组件中对列进行排序或编辑单元格时更新气泡图。

函数tsunamisData创建表数组T =可读的(“tsunamis.xlsx”);Vars = {“纬度”“经”“MaxHeight”};T = T (1:20,vars);创建UI图FIG = ufigure;fig.Position(3:4) = [722 360];创建表UI组件Uit =可使用(图);外的。数据= t; uit.ColumnSortable = true; uit.ColumnEditable = [false false true]; uit.Position(3) = 290; uit.DisplayDataChangedFcn = @updatePlot;%创建气泡图Ax = uiaxes(fig);x. position (1) = 315;ax.XLabel.String =“经”;ax.YLabel.String =“纬度”;x = t.经度;y = t.纬度;sz = t.MaxHeight;bubblechart (ax, x, y,深圳)当表数据发生变化时更新气泡图函数updatePlot(src,event) t = unit . displaydata;x = t.经度;y = t.纬度;sz = t.MaxHeight;bubblechart (ax, x, y,深圳)结束结束

一个应用程序,其中有一个表,显示了一些海啸的纬度、经度和MaxHeight数据,以及表数据的气泡图。气泡图用经度(Longitude)表示x轴,纬度(Latitude)表示y轴,气泡大小(MaxHeight)表示MaxHeight。

当鼠标悬停在可排序列上时,可排序列的标题中会显示箭头。根据海啸的最大高度对表格进行排序。

海啸数据表的MaxHeight列按升序排序。用户的鼠标光标位于MaxHeight列标头上,标头文本旁边显示一个向上的箭头。

通过首先双击表格单元格,然后输入新的高度,编辑第二行中海啸的最大高度为30米。注意气泡图是如何更新的。

第二行和MaxHeight列中的单元格被选中,数字1已被数字30取代。气泡图的气泡大小已经改变,以反映新的MaxHeight数据。

类为表UI组件的行、列或单元格设置样式uistyle而且addStyle功能。样式只在表UI组件位于用金宝appuifigure函数。App Designer使用这种类型的图形来创建应用程序。)

样式表UI组件中包含缺失值的单元格。在本例中,为单元格添加红色背景色样式值。

将海啸样本数据作为表数组读入工作区。然后,创建一个表UI组件来显示数据。

Tdata =可读数据(“tsunamis.xlsx”);Vars = {“年”“月”“天”“小时”...“MaxHeight”“原因”“EarthquakeMagnitude”};Tdata = Tdata (1:100,vars);图= ufigure图(“位置”,[500 500 760 360]);Uit =可使用(图);外的。位置= [20 20 720 320];外的。数据= tdata; uit.RowName =“编号”

使用ismissing函数获取包含缺失值的表元素的逻辑数组。找到具有的元素的行下标和列下标值。最后,创建一个红色背景色样式,并将其添加到单元格中表UI组件中的值。

styleIndices = ismissing(tdata);[row,col] = find(styleIndices);S = ustyle (“写成BackgroundColor”,[1 0.6 0.6]);addStyle(外的年代,“细胞”,行,坳);

表中有地震数据。带有NaN的细胞以红色突出显示。

从R2021b开始,您可以通过编程方式设置和查询选中了哪些表元素,并指定用户是否可以选择单元格、行或列。控件创建的图中仅支持编程式选择金宝appuifigure函数。App Designer使用这种类型的图形来创建应用程序。)

使用此功能,创建一个应用程序,当用户在表中选择数据时,自动在地图上绘制数据。首先,创建一个名为selectTsunamis.m.在程序文件中:

  • 方法加载海啸数据readtable函数。

  • 在面板中创建带有表格UI组件和地理气泡图的UI图。

  • 配置表UI组件。将海啸数据存储在数据属性,并允许用户通过设置SelectionType而且多选属性。

  • 指定一个SelectionChangedFcn当应用程序用户更改表选择时更新气泡图的回调。该函数为每个选定的行绘制一个气泡,其中气泡的大小表示最大海啸高度。

函数selectTsunamis负载数据T =可读的(“tsunamis.xlsx”);Vars = {“纬度”“经”“MaxHeight”};T = T(1:20,vars);%创建UI组件图= ufigure图(“位置”,[500 500 700 350]);TBL =可适用(图,“位置”,[20 20 250 300]);PNL = uipanel(图,“位置”,[285 20 400 300]);geobubble (pnl [], []);%配置表资源描述。数据= T; tbl.SelectionType =“行”;资源描述。多选=“上”;资源描述。SelectionChangedFcn = @plotTsunami;为每个选定的行绘制海啸数据函数plotTsunami(src,event) rows = event. selection;data = src.Data(rows,:);lat =数据。纬度;long = data.Longitude;ht = data.MaxHeight;geobubble (lat, pnl长,ht);结束结束

运行selectTsunamis函数,并通过长按选择多个表行Ctrl而点击。剧情根据海啸数据更新。

带有表格和地理气泡图的图形窗口。选择多个表行。

从R2021a开始,可以使用控件以编程方式滚动到表UI组件的行、列或单元格滚动函数。控件创建的图形中仅支持编程式滚动金宝appuifigure函数。App Designer使用这种类型的图形来创建应用程序。)

将示例患者数据作为表数组读入工作区。然后,创建一个表UI组件来显示数据。

Tdata =可读数据(“patients.xls”);Vars = {“年龄”“收缩”舒张压的“抽烟”};Tdata = Tdata (1:40,vars);FIG = ufigure;Uit = uitable(图,“数据”, tdata);外的。RowName =“编号”

在UI图形窗口中显示病人数据的表。对表行进行编号,并将表滚动到顶部。

滚动到表的第25行。

滚动(外的,“行”, 25)

在UI图形窗口中显示病人数据的表。滚动表,使第25行位于可见数据的顶部。

创建一个表UI组件,它显示一个10 × 3的随机整数数组。的数据属性指定要显示的值,而位置属性指定图中表的位置和大小。

F =数字;Uit = uitable(f,“数据”3),兰迪(100,10日,“位置”,[20 20 262 204]);

表与十行和三列的数字数据。

表UI组件可以跨列容纳不同数据类型的混合。

创建一个空的表格UI组件。

F =数字;Uit =适合(f);

设置数据属性将数据填充为包含不同类型混合的单元格数组。然后设置位置属性调整表的位置和大小以适应数据。

D = {“男”52岁的正确;“男”现年40岁的正确;“女”25岁的虚假};外的。数据= d; uit.Position = [20 20 258 78];

表,有三行三列。第一列包含文本,第二列包含数值数据,第三列包含复选框。选中第一行和第二行中的复选框。

设置ColumnName属性将列标题更改为描述性名称。设置ColumnEditable财产真正的这样用户就可以在用户界面中编辑数据。当用户更改UI中的值时,数据属性更新以反映该更改。

外的。ColumnName = {“性别”“年龄”“授权”};外的。ColumnEditable = true;

表,有三行三列。每列在数据上方都有一个列名。

输入参数

全部折叠

属性创建的图形指定为父容器数字uifigure函数或子容器:

  • 面板、选项卡和按钮组可以是任意一种类型的图形中的容器。

  • 控件创建的图形中的网格布局只能是容器uifigure函数。

名称-值参数

例子:(图,“数据”,[1 2 3;4 5 6])

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在单引号内(' ').可以指定多个名称和值对参数为Name1, Value1,…,的家

请注意

这里列出的属性是可用属性的子集。有关完整列表,请参见表属性

表数据,指定为以下类型的数组之一:

  • 表数组(uifigure仅基于应用程序)-显示任何数据类型的组合表格数组支持,例如金宝appdatetime持续时间,分类

  • 数值数组-显示数值值,例如

  • 逻辑数组—显示复选框。真正的值对应于选定的框,而值显示已清除的框。

  • 单元格数组——显示数字、逻辑或字符数组值的任何组合。

  • 字符串数组-显示字符和文本。

  • 字符向量的单元格数组-显示字符和文本。

为了防止警告或当用户在可编辑单元格中输入无效数据时显示的值,则写入CellEditCallback函数将数据转换为适当的类型。当用户编辑单元格时,数据属性更新。

指定一个表数组

类创建的应用程序uifigure函数时,可以指定数据属性作为表数组。表数组提供了一种方便的方法来将表格数据存储为MATLAB变量。的表格readtable,array2table函数创建表数组。相比之下,场上函数创建表格UI组件(应用程序的用户界面组件)。

当您指定数据的属性表格UI组件作为一个表数组,然后MATLAB设置的格式表格UI组件自动基于表数组中的值:

  • 默认情况下,应用程序中显示的列名与VariableNames属性。改变了ColumnName的属性表格UI组件更新UI,但它不更新表数组中的变量名。

  • 默认情况下,应用程序中显示的行名与RowName属性。改变了RowName的属性表格UI组件更新UI,但它不更新表数组中的行名。

  • 每个表数组变量的数据类型控制应用程序中相应列的格式ColumnFormat属性,MATLAB返回一个警告。

有关显示表数组数据的详细信息,请参见应用程序设计器应用程序中的表数组数据类型

指定字符向量的数字、逻辑、单元格、字符串数组或单元格数组

使用ColumnFormat属性指定数值、逻辑、单元格或字符串数组或字符向量的单元格数组的数据的格式。类的数据类型与数据类型之间不匹配ColumnFormat属性,MATLAB转换数据或显示警告。看到可编辑列的数据显示ColumnFormat属性描述以获取更多信息。

表列的宽度指定为“汽车”或者作为1——- - - - - -n字符向量、字符串和数值的单元格数组。在uifigure基于应用程序,你可以额外指定列宽度为“1 x”“健康”

  • 自动宽度-指定“汽车”让MATLAB自动计算列的宽度使用几个因素,其中之一是ColumnName属性值。

  • 适合内容宽度(uifigure-指定值为“健康”将列配置为严格调整宽度以适应列名和数据。此设置允许较窄的列“汽车”所做的事。

  • 均匀宽度(uifigure-指定值为“1 x”要使所有列都具有相同的宽度,请将可用空间等分。

  • 固定宽度-指定数值单元格数组,以像素单位定义列宽度。

  • 组合——你可以在单元格数组中组合固定和可变的列宽。单元格数组中的每个元素都对应于表中的一列。如果指定的单元格数组的值小于列数,则没有指定值的列将保留默认值“汽车”.如果数组的值大于列数,MATLAB将忽略额外的值。

  • 加权可变宽度(uifigure-指定一个单元格数组,包含字符向量或由数字连接到的字符串“x”(例如,“2 x”“3 x”等)。每个列的x因子相对于其他列按比例设置列宽,并考虑UI表中的剩余空间。

例子:uit = uitable(ufigure,'ColumnWidth','auto','Data',[1 2 3;4 5 6])

例子:uit = uitable(ufigure,'ColumnWidth','fit','Data',[1 2 3;4 5 6])

例子:uit = uitable(ufigure,'ColumnWidth',{64,60,40},'Data',[1 2 3;4 5 6])

例子:外的=场上(uifigure ColumnWidth, {' 2 x ', ' 1 x ', ' 1 x '},“数据”,[1 2 3,4 5 6])

例子:uit = uitable(ufigure,'ColumnWidth',{64,"auto",40},'Data',[1 2 3;4 5 6])

例子:外的=场上(uifigure ColumnWidth,{‘配合’,‘1 x’,‘3 x’},“数据”,[1 2 3,4 5 6])

编辑列单元格的能力,指定为:

  • 空逻辑数组([]) -没有可编辑的列。

  • 一个逻辑上的1 × -narray -该数组指定哪些列是可编辑的。的价值n等于表中的列数。数组中的每个值都对应一个表列。值为真正的在数组中使该列中的单元格可编辑。值为使该列中的单元格不可编辑。如果数组的值大于列数,MATLAB将忽略多余的值。如果数组的值小于列数,则没有指定值的列是不可编辑的。

  • 逻辑标量—整个表是可编辑或不可编辑的。

当用户编辑单元格时,数据属性更新。

例子:uit = uitable(ufigure,'Data',rand(10,3),'ColumnEditable',[false true true])

例子:uit = uitable(ufigure,'Data',rand(10,3),'ColumnEditable',false)

要使用户能够与包含复选框或弹出菜单的表列中的控件交互,请设置ColumnEditable财产真正的

如果数据属性为表数组,则为多列或包含不可编辑数据类型的任何变量,如持续时间,在运行的应用程序中不能编辑ColumnEditable属性是真正的.在单元格数组中包含混合数据类型的表数组变量在运行的应用程序中是可编辑的,只要数据类型是可编辑的。

单元格编辑回调函数,指定为以下值之一:

  • 一个函数句柄。

  • 第一个元素为函数句柄的单元格数组。单元格数组中的后续元素是传递给回调函数的参数。

  • 包含有效MATLAB表达式的字符向量(不推荐)。MATLAB在基本工作空间中计算这个表达式。

当应用程序用户更改表格单元格的内容时,使用此回调函数执行计算或验证输入。

这个回调函数可以访问关于用户与单元格交互的特定信息(比如单元格索引)。MATLAB将此信息传递到CellEditData对象作为回调函数的第二个参数。在App Designer中,这个参数被调用事件.可以使用点表示法查询对象属性。例如,事件。在dices返回选定单元格的索引。的CellEditData对象对于指定为字符向量的回调函数不可用。

属性的属性说明如下CellEditData对象。

财产

描述

指数

这是一个1 × 2的数组,包含用户在运行的应用程序中编辑的单元格的行和列索引。指数返回单元格在排序之前的原始1 × 2数组DisplayIndices返回在排序表中可视显示的编辑单元格的新位置。

DisplayIndices

这是一个1 × 2的数组,包含与已排序表的显示中已编辑单元格的位置对应的行和列索引。如果用户不对列进行排序,则DisplayIndices内容与指数财产。

PreviousData

这是之前的单元格数据。默认是一个空矩阵,[]

EditData

这是用户输入的值。

NewData

这是MATLAB写的值数据属性数组。

NewData如果MATLAB在用户输入的数据中检测到错误,则属性为空。

错误

这是当MATLAB在用户输入的数据中检测到错误时返回的错误消息。

错误属性为空时,MATLAB成功地将值写入数据财产。

如果错误属性不是空的,那么CellEditCallback可以显示消息,也可以尝试修复问题。

组件执行回调。

EventName

“CellEdit”

当用户编辑一个表格单元格时,MATLAB执行以下步骤:

  1. 方法中存储新值数据表的属性

  2. 调用CellEditCallback函数(如果存在)

如果该值导致错误,且没有CellEditCallback函数,然后单元格数据恢复到以前的值,并且不显示错误。

有关编写回调函数的详细信息,请参见应用程序设计器中的回调

表的位置和大小,指定为窗体的四个元素向量[左下宽高].该表描述了向量中的每个元素。

元素 描述
父容器左内边缘到表左外边缘的距离
父容器的内底边到表的外底边的距离
宽度 表的左右外边缘之间的距离
高度 表的顶部和底部外边缘之间的距离

所有的测量单位都由单位财产。

位置值相对于可拉的区域父容器的。可绘制区域是容器边界内的区域,不包括菜单栏或标题等装饰所占用的区域。

度量单位,在本表中指定为其中一个值。

单位价值 描述
“像素”(默认)

在Windows上,以像素为单位的距离与系统分辨率无关®而且麦金塔电脑系统:

  • 在Windows系统上,一个像素是1/96英寸。

  • 麦金塔电脑在系统中,一个像素是1/72英寸。

在Linux上®在系统中,像素的大小是由系统分辨率决定的。

“归一化”

这些单元相对于父容器是规范化的。容器的左下角映射到(0,0)右上角映射到(1,1)

“英寸” 英寸。
“厘米” 厘米。
“点” 点。1分等于1/72英寸。

推荐值为:“像素”,因为大多数MATLAB应用程序构建功能以像素为单位测量距离。类创建的网格布局管理器,通过将表父化,可以创建一个根据父容器大小重新缩放的表uigridlayout函数。有关更多信息,请参见以编程方式布局应用程序

数字的应用程序

属性创建的应用程序中的表数字函数,默认值为单位“归一化”

此外,您还可以指定单位作为“角色”.字符单位基于图形根对象的默认uicontrol字体:

  • 字符宽度=字母的宽度x

  • 字符高度=两行文本基线之间的距离。

要访问默认的uicontrol字体,请使用get(大的,“defaultuicontrolFontName”)集(大的,“defaultuicontrolFontName”)

版本历史

在R2008a中引入

全部展开