主要内容

场上

创建表的用户界面组件

描述

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

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

例子

外的=场上()创建表中指定的父容器。父容器可以使用的创建的图uifigure函数,或一个孩子容器如面板。属性值对场上略有不同取决于应用程序的创建uifigure函数。有关更多信息,请参见名称-值对的观点

例子

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

例子

全部折叠

从R2018a开始,您可以显示数组中的数据表UI组件。(支持这种类型的数据只有当表图创建UI组件金宝appuifigure函数。程序设计师使用这种类型的图来创建应用程序。)

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

t = readtable (“patients.xls”);var = {“年龄”,“收缩”,舒张压的,“抽烟”};t (t = 1:15, var);

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

无花果= uifigure;外的=场上(图,“数据”t);

一张桌子有四个列:“年龄”、“收缩”,“舒张期”,“烟民”。表填充数据。“烟民”列中的数据显示为选中或未被选中。

以编程方式显示和更新数组中的数据表UI组件。(支持这种类型的数据只有当表图创建UI组件金宝appuifigure函数。程序设计师使用这种类型的图来创建应用程序。)

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

t = readtable (“tsunamis.xlsx”);var = {“年”,“MaxHeight”,“有效性”};t = t (1:20, var);无花果= uifigure;外的=场上(图,“数据”t);

表三列的海啸数据:海啸,米,最大海啸高度和海啸的有效性(例如,“可疑的海啸”或“明确的海啸”)。

更新的有效性海啸由编辑在第一行数据UI的属性表。

uit.Data.Validity (1) = {“明确的海啸”};

一个表与海啸,最大高度和有效性。第一行中的条目有一个有效性的价值“明确的海啸”。

从米最大高度数据转换成英尺的访问和修改数据MaxHeight列。

uit.Data。MaxHeight= uit.Data.MaxHeight*3.281;

一个表与海啸,最大高度,和有效性。MaxHeight列中的值都在脚下。

创建一个应用程序,允许用户编辑表数据,更新数据可视化和数据时发生了变化。(互动支持列排序只有当表图创建UI组件金宝appuifigure函数。程序设计师使用这种类型的图来创建应用程序。)

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

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

  • 创建一个用户界面图。

  • 创建一个合适的和可编辑表UI组件显示在图中。存储组件的数组数据财产。

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

  • 指定一个DisplayDataChangedFcn回调使用DisplayData属性更新时气泡图应用用户类型表中的列或编辑细胞UI组件。

函数tsunamisData%创建表数组t = readtable (“tsunamis.xlsx”);var = {“纬度”,“经”,“MaxHeight”};t = t (1:20, var);%创建用户界面图无花果= uifigure;fig.Position (3:4) = (722 - 360);%创建表的UI组件外的=场上(图);外的。数据= t; uit.ColumnSortable = true; uit.ColumnEditable = [false false true]; uit.Position(3) = 290; uit.DisplayDataChangedFcn = @updatePlot;%建立气泡图ax = uiaxes(图);ax.Position (1) = 315;ax.XLabel。字符串=“经”;ax.YLabel。字符串=“纬度”;x = t.Longitude;y = t.Latitude;深圳= t.MaxHeight;bubblechart (ax, x, y,深圳)%更新表数据更改时气泡图函数t = uit.DisplayData updatePlot (src、事件);x = t.Longitude;y = t.Latitude;深圳= t.MaxHeight;bubblechart (ax, x, y,深圳)结束结束

应用程序与一个表显示经度,纬度,MaxHeight数据的海啸,泡沫表数据的图表。泡沫图块的位置x轴上的海啸与经度,纬度上的轴,和泡沫大小由MaxHeight给出。

一个可排序的列显示头当你鼠标的箭头。排序表的最大高度海啸。

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

编辑的最大高度30米的海啸在第二行首先双击单元格,然后输入新高度。注意气泡图的更新。

细胞在第二行和MaxHeight列被选中时,1号和数量30所取代。气泡图泡沫尺寸已经改变以反映新的MaxHeight数据。

从R2019b开始,你可以行,列,或细胞的表使用的UI组件uistyleaddStyle功能。(样式表时仅支持UI组件图创建金宝appuifigure函数。程序设计师使用这种类型的图来创建应用程序。)

样式表中的细胞含有缺失值的UI组件。在这种情况下,添加一个红色背景颜色风格的细胞值。

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

tdata = readtable (“tsunamis.xlsx”);var = {“年”,“月”,“天”,“小时”,“MaxHeight”,“原因”,“EarthquakeMagnitude”};tdata = tdata (1:10 0, var);无花果= uifigure (“位置”,(500 500 760 360));外的=场上(图);外的。位置= (20 720 320);外的。数据= tdata; uit.RowName =“编号”;

使用ismissing函数得到的一个逻辑数组表包含缺失值的元素。找到的行和列元素的下标值。最后,创建一个红色的背景颜色与风格,并将其添加到细胞表中的值的UI组件。

styleIndices = ismissing (tdata);(行,坳)=找到(styleIndices);s = uistyle (“写成BackgroundColor”0.6 - 0.6 [1]);addStyle(外的年代,“细胞”,行,坳);

与地震数据表。细胞与南以红色突出显示。

从R2021b开始,您可以通过编程方式设置和查询哪个表元素被选中,并指定用户可以选择是否细胞,行或列。(可编程选择表时仅支持UI组件图创建金宝appuifigure函数。程序设计师使用这种类型的图来创建应用程序。)

使用该功能,创建一个应用程序时自动把数据嵌入到地图上用户选择表。首先,创建一个程序文件selectTsunamis.m。在程序文件:

  • 通过调用加载海啸数据readtable函数。

  • 创建一个UI图与表UI组件和地理泡泡图面板。

  • 配置表UI组件。海啸中的数据存储数据财产,通过设置让用户选择多个行SelectionType多选属性。

  • 指定一个SelectionChangedFcn时更新气泡图的回调应用用户更改表选择。为每个选定行功能块泡沫,泡沫的大小代表了最大的海啸高度。

函数selectTsunamis%加载数据T = readtable (“tsunamis.xlsx”);var = {“纬度”,“经”,“MaxHeight”};T = T (1:20, var);%创建UI组件无花果= uifigure (“位置”,(500 500 700 350));台=场上(图,“位置”,20 250 300);pnl = uipanel(图,“位置”,(285 400 300));geobubble (pnl [], []);%配置表资源描述。数据= T; tbl.SelectionType =“行”;资源描述。多选=“上”;资源描述。SelectionChangedFcn = @plotTsunami;%情节海啸数据为每个选定的行函数plotTsunami (src、事件)行= event.Selection;data = src.Data(行,:);lat = data.Latitude;长= data.Longitude;ht = data.MaxHeight;geobubble (lat, pnl长,ht);结束结束

运行selectTsunamis功能,选择多个表行通过压低Ctrl而点击。情节与海啸数据更新。

图窗口一个表和一个地理泡泡图。多个表行被选中。

从R2021a开始,您可以通过编程方式滚动一行,列,或细胞的表使用的UI组件滚动函数。(编程时仅支持滚动表图创建UI组件金宝appuifigure函数。程序设计师使用这种类型的图来创建应用程序。)

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

tdata = readtable (“patients.xls”);var = {“年龄”,“收缩”,舒张压的,“抽烟”};tdata = tdata (40、var);无花果= uifigure;外的=场上(图,“数据”,tdata);外的。RowName =“编号”;

与病人数据表界面图窗口。表行编号,表滚动到顶部。

滚动到25行表的。

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

与病人数据表界面图窗口。滚动表这一行25的顶部可见数据。

创建一个表UI组件显示10-by-3随机整数的数组。的数据属性指定的值显示,位置属性指定表的位置和尺寸图。

f =图;外的=场上(f,“数据”3),兰迪(100,10日,“位置”,20 262 204);

表10行三列的数值数据。

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

创建一个空UI组件。

f =图;外的=场上(f);

设置数据属性来填充数据作为一个单元阵列包含不同类型的混合物。然后设置位置属性表的调整位置和大小以适应数据。

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

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

设置ColumnName属性改变列标题的描述性名称。设置ColumnEditable财产真正的这样用户可以在UI编辑数据。当用户改变一个值在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”等)。每一列的未知因素集,列宽比例对他人,考虑UI表中剩余的空间。

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

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

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

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

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

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

能够编辑列细胞,指定为:

  • 一个空逻辑阵列([])- - -没有可编辑列。

  • 一个逻辑1 -n数组,该数组中指定的列是可编辑的。的价值n等于表中的列数。数组中的每个值对应于一个表列。的值真正的数组中的细胞,可编辑列。的值使细胞这一列uneditable。如果数组值比列的数量,MATLAB忽略多余的值。如果数组的值比列的数量少,然后没有指定值的列不编辑。

  • 一个逻辑标量——整个表是可编辑或uneditable。

当用户编辑一个细胞时,数据属性更新。

例子:外的=场上(uifigure,“数据”,兰德(10,3),“ColumnEditable”,[假真的真])

例子:外的=场上(uifigure,“数据”,兰德(10,3),“ColumnEditable”,假)

来支持用户交互与控制表列包含复选框或弹出式菜单,设置ColumnEditable财产真正的

如果数据属性是一个表数组,那么多列或包含不可编辑的任何变量的数据类型,等等持续时间不运行应用程序即使在可编辑ColumnEditable属性是真正的。表中包含混合数据类型数组变量中可编辑单元阵列运行应用程序,只要数据类型是可编辑的。

单元格编辑回调函数,指定这些值之一:

  • 一个处理函数。

  • 细胞数组中第一个元素是一个函数处理。后续单元阵列中的元素传递给回调函数的参数。

  • 一个特征向量包含有效的MATLAB表达式(不推荐)。MATLAB计算表达式的基本工作空间。

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

这个回调函数可以访问特定用户的信息交互与细胞(如细胞指数)。MATLAB中传递这些信息CellEditData回调函数对象作为第二个参数。在应用程序设计,论证事件。你可以查询对象属性使用点符号。例如,event.Indices返回所选单元的指标。的CellEditData对象不可用回调函数指定为特征向量。

下面的表描述的属性CellEditData对象。

财产

描述

指数

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

DisplayIndices

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

PreviousData

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

EditData

这是用户输入的值。

NewData

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

NewDataMATLAB属性是空的,如果检测到一个错误的用户输入的数据。

错误

这是返回的错误消息如果MATLAB检测到一个错误的用户输入的数据。

错误属性是空的时MATLAB成功将值写入数据财产。

如果错误属性不是空的,那么CellEditCallback可以显示的信息,也可以尝试解决这个问题。

组件执行回调。

EventName

“CellEdit”

当用户编辑单元格,MATLAB执行这些步骤:

  1. 试图进入存储新的价值数据表的属性

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

如果该值会导致错误和没有CellEditCallback函数,然后细胞数据恢复到原来的大小,显示没有错误。

写回调函数的更多信息,请参阅回调程序设计师

指定的位置和尺寸表,作为研制出向量的形式(左底宽高)。此表描述向量中每个元素。

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

所有测量单位指定的单位财产。

位置值是相对的可拉的区域父容器。在绘图区域的面积内容器的边界和不包括装饰所占据的区域如菜单栏或标题。

度量单位,指定为这个表中的值之一。

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

距离的像素是独立的系统分辨率在Windows®麦金塔电脑系统:

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

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

在Linux上®系统中,一个像素的大小取决于您的系统分辨率。

“归一化”

这些单位规范化对父容器。左下角的容器映射到(0,0)和右上角的地图(1,1)

“英寸” 英寸。
“厘米” 厘米。
“点” 点。一个点= 1/72nd英寸。

推荐值“像素”,因为大多数MATLAB应用程序构建功能措施在像素的距离。您可以创建一个表,重新调节基于父容器的大小通过育儿表创建一个网格布局管理器使用uigridlayout函数。有关更多信息,请参见列出应用程序以编程方式

的应用程序

表在使用创建应用程序函数的默认值单位“归一化”

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

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

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

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

版本历史

介绍了R2008a

全部展开