我正在开发一个GUI,我希望用户以文本或excel格式输入。当他点击"上传文件"从我的GUI按钮,文件浏览器将打开,他将选择文本文件。一旦他点击打开,文件应该在工作区中,所以我的下一个代码将获取值给出结果。
我所做的是:在按钮下输入此代码
[filename,pathname] = uigetfile('*.txt')
loaddata = fullfile(pathname,filename)
data = load(loaddata)
A = data(:,1)
B = data(:,2)
C = data(:,3)
D = data(:,4)
handles.input1 = A;
handles.input2 = B;
handles.input3 = C;
handles.input4 = D;
现在,当浏览器打开时,我可以选择具有4列和2000行数据的.txt文件。但是当我回到工作区时,我无法在工作空间中看到任何内容,但在命令窗口中显示第二列的所有值!
答案 0 :(得分:0)
您可以使用setappdata和关联的getappdata来存储应用程序定义的数据,并从其他地方检索,例如从GUI或基础工作区检索。
在您的情况下,您可以将A
,B
,C
和D
存储在基本工作区中,以便其他脚本可以使用它们。如果需要,您还可以存储handles
结构。
例如,GUI中的代码可能如下所示:
[filename,pathname] = uigetfile('*.txt')
loaddata = fullfile(pathname,filename)
data = load(loaddata)
%// Store in the base workspace (i.e. the "0")
setappdata(0,'AllData',data);
请注意,只要使用getappdata
检索具有相同名称的变量,就可以将任何名称作为名称写入。我在这里使用了AllData
,但您也可以将其保留为data
。
因此,在您运行的其他脚本中,请使用getappdata
,如下所示:
DataInScript = getappdata(0,'AllData');
A = AllData(:,1)
B = AllData(:,2)
C = AllData(:,3)
D = AllData(:,4)
现在,根据您是否已分配A,B,C和D,您可以直接从AllData
访问您的数据。