在matlab上保存临时数据

时间:2016-10-05 00:21:54

标签: database matlab user-interface save

我使用按钮和编辑文本制作了一个GUI。 第一步是在编辑文本中输入初始数据,然后单击按钮。 单击按钮后,它会从API收集一些信息,然后进行一些长时间的计算并在表格中显示结果。

但是,如果我更改了我的初始编辑文本,我仍然希望使用第一次点击时相同的API。

有没有办法保存数据并将其用于下一次按钮点击以节省计算时间,而不是每次都从API收集信息?

*只要代码打开,我就想保存这些数据,只是因为我需要更多的计算。我不想用保存功能保存数据,然后在该文件夹上有MAT文件。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以以不同方式将数据附加到特定的GUI对象

<强> 1。使用UserData

GUI对象的属性UserData可以存储您选择的变量(存储多个变量只是在结构,单元格或数组中收集它们)。 使用对象句柄getset数据。例如,设置/获取带有标记 edit1 的编辑文本框的UserData

set(handles.edit1, 'UserData', 2)
get(handles.edit1, 'UserData')
ans = 
     2

请注意,在回调中,您可以编写hObject来获取当前句柄。

<强> 2。使用申请数据

一种非常类似的方法是使用setappdata将数据存储到GUI对象,从而创建与该对象/句柄关联的自己的键值映射。与UserData方法的不同之处在于,您可以创建多个不同的键值对(因此需要收集结构/单元格/数组中的所有内容并不是即将发生的)。

setappdata(handles.edit1, 'Foo', 1);
setappdata(handles.edit1, 'Bar', 3);
getappdata(handles.edit1)
ans =
      Foo: 1
      Bar: 3

getappdata(handles.edit1, 'Foo')
ans =
     1

第3。使用guidata

另一种变体是将单个变量(如UserData)分配给主GUI图而不是特定句柄。这是通过使用guidata完成的。没有键/名称用于设置数据。

guidata(anyHandleInGUI, myData)

第一个输入是主要的数字句柄或其任何子句。

guidata(handles.edit1, 5)
guidata(handles.edit1)
ans =
     5

假设您的按钮的标签为 pushbutton1 。由于guidata找到了根父级(图形句柄),因此您可以使用其句柄获取相同的数据。

guidata(handles.pushbutton1)
ans =
     5