在 Matlab GUI 中加载数据

Load Data in Matlab GUI

我正在开发一个 GUI,我希望用户以文本或 excel 格式输入。当他从我的 GUI 中单击 "Upload File" 按钮时,文件浏览器将打开,他将 select 文本文件。一旦他点击打开,文件应该在工作区中,所以我的下一个代码将取值给出结果。

我所做的是:将此代码放在按钮下

[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;

现在当浏览器打开时,我可以 select .txt 文件,它有 4 列和 2000 行数据。但是当我回到工作区时,我在工作区中看不到任何东西,但是命令 window!

中第二列的所有值

您可以使用 setappdata and the associated getappdata 来存储应用程序定义的数据并从其他地方检索它,例如从 GUI 或基础工作区。

在您的情况下,您可以将 ABCD 存储在基础工作区中,以便您的其他脚本可以使用它们。如果需要,您还可以存储 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 访问您的数据。