输入/访问GUI MATLAB的数据

时间:2014-10-24 09:45:36

标签: matlab user-interface import matlab-figure

我想用滑块绘制我的数据的简单图形来改变y轴数据的系数。我已经从快速入门创建了我的GUI界面,包括绘图和滑块。我现在希望编写代码(我相信simpleguide_OpeningFcn部分)来导入我的数据集。我的数据集是5个不同的300x1向量,我目前使用名为importfile2.m的导入函数将其导入到普通的MATLAB文件中。

如何将这些数据导入我的简单plot(x,y)的GUI中的任何帮助都将非常感激。干杯

1 个答案:

答案 0 :(得分:1)

另一种方法是使用setappdatagetappdata从GUI中的任何位置获取数据。

例如,在importfile2.m结束时,您可以使用setappdata将数据存储在某个变量中。第一个参数告诉MATLAB在哪个工作空间中保存它。例如,您可以使用GUI界面本身或使用可从任何地方访问的基础工作区。这是最通用的方式:

setappdata(0,'FancyName',YourData); %// The 0 is for the base workspace,i.e. the 'root'.
%//YourData is the actual data and 'FancyName' is whatever name you give them. It does not have to be the same name as the variable in your function. The important thing is to use the same name in getappdata as below.

如果您只想将数据与GUI图关联,您可以使用以下内容:

setappdata(handles.YourFigure_Tag,'FancyName',YourData);

要获取GUI中的数据,请在其打开功能中使用getappdata(或在您想要的任何回调中),然后您就可以了:

Data_inGUI = getappdata(0,'FancyName'):

更强大的方法是将数据直接存储在GUI的句柄结构中,以便每次回调都可以访问它:

handles.Data_inGUI = getappdata(0,'FancyName'):
guidata(hObject,handles); %// Update handles structure; important!

那应该这样做。希望有所帮助!

编辑我认为另一种解决方案是在导入功能结束时保存.mat文件并将其加载到GUI的OpeningFcn中。可能更简单/更快。

编辑2 按照下面的评论,我会这样做:

1)在GUI的OpeningFcn中,导入数据。

[Date,OutAirTemp,SupAirtemp] = importfile3('AHU7Oct.csv')

然后您可以将所有内容存储在句柄结构中:

handles.Data = Date;
handles.OutAirTemp = OutAirTemp;
handles.SupAirtemp = SupAirtemp;
guidata(hObject,handles); %// Update handles structure.

然后在GUI中的其他地方(即其他回调),您可以按常规获取数据,例如使用:

NewDate = handles.Date - 4 %// or whatever.

有点清楚吗?