主要内容

guidata

存储或检索UI数据

仅使用指南使用此功能,或使用使用的应用程序使用数字函数。

描述

例子

guidata (obj数据的应用程序数据中存储指定的数据obj如果它是一个图形,或父图形obj如果是另一个组件。有关更多信息,请参见guidata如何管理数据

例子

数据= guidata (obj如果没有存储,则返回先前存储的数据,或者空矩阵。

例子

全部折叠

创建一个用于存储和检索计数器数据的编程式UI。

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

  • 创建一个图。

  • 创建一个字段值初始化为零的结构。

  • 在图中存储数据。

  • 定义从图中检索数据的回调函数,更改数据,并再次存储图中的新数据。

运行程序并在图中单击。更新后的数据将出现在命令窗口中。

f =图;数据。numberOfClicks = 0;guidata(f,data) f.ButtonDownFcn = @My_Callback;功能my_callback(src,事件)data = guidata(src);data.numberofclicks = data.numberofclicks + 1;Guidata(SRC,数据)数据结束
带有字段的数据= struct:numberofclicks:1

在GUIDE中创建一个按钮,并在按钮被按下时存储和访问数据。控件中添加一个字段处理结构和使用guidata更新和管理它。(确保将数据添加到处理而不是覆盖它。有关更多信息,请参见GUIDE如何使用guidata)。然后,配置一个使用guidata当按钮被按下时存取和存储数据。

要做到这一点,首先,打开GUIDE并添加一个按钮到布局区域。然后,单击编辑器图标打开程序文件进行编辑。找到OpeningFcn这是由GUIDE自动创建的,并添加一个新字段到处理被称为numberOfClicks

%——在countClicks可见之前执行。功能countClicks_OpeningFcn(hObject, eventdata, handles, varargin)%此函数没有输出args,请参阅OutputFCN。%frefject手柄到图% eventdata reserved -在MATLAB的未来版本中定义%处理结构与句柄和用户数据(见GUIDATA)counclicks的% varargin命令行参数(参见varargin)%选择默认的命令行输出句柄。输出= hObject;句柄。numberOfClicks = 0;%更新句柄结构guidata (hObject处理);

接下来,找到GUIDE创建的按钮回调函数。给它编程来存取存储在里面的数据处理,修改它,将更改的数据保存到结构中,并在命令窗口中显示新数据。注意你在GUIDE中使用的hObject,代替SRC.,引用呼叫正在执行的对象。

%——在pushbutton1中的按钮按下时执行。功能pushbutton1_Callback (hObject eventdata处理)%frefle句柄到按钮1(见GCBO)% eventdata reserved -在MATLAB的未来版本中定义%处理结构与句柄和用户数据(见GUIDATA)句柄。numberOfClicks =处理。numberOfClicks + 1;guidata(hObject,handles) data = guidata(hObject)
>> countClicks data = struct with fields: figure1: [1×1 Figure] pushbutton1: [1×1 UIControl] output: [1×1 Figure] numberOfClicks: 1

输入参数

全部折叠

图形对象,如a数字插图,或UI对象。使用此参数指定存储的图形数据.如果指定的对象不是图形,则将使用对象的父图来存储数据

数据存储在图中,指定为任何MATLAB数据。通常,数据指定为结构,使您能够根据需要添加新字段。例如,创建一个数据结构,其字段名为类别,将数据存储在结构中的字段中,并在“命令”窗口中显示存储的数据:

data.category =.“增长”;guidata (gcf、数据);data = guidata (gcf)

算法

全部折叠

如何guidata管理数据

guidata在任何时候,每个父图只能管理一个变量。随后的调用guidata (obj,数据)覆盖以前存储的数据。通过创建具有多个字段的结构来存储额外的数据。

指导如何使用guidata

指导用途guidata存储和维护所谓的结构处理.在指南代码文件中,不要覆盖处理结构或您的程序将不再工作。如果需要存储其他数据,可以通过向处理结构。

在R2006A之前介绍