尝试读取大数据文件并将其存储在工作区中,以便其他功能可以使用它

Trying to read large data file and store it in workspace so that other functions can use it

我希望我的 GUI 能够读取包含 header 信息和几列值的文件,并存储它以便可以对数据执行其他操作,例如平均值、最大值、 RMS 等

'importdata' 函数非常适合我正在使用的文件。我有一个脚本,允许用户选择一个导入的文件,所有数据都存储在工作区中。效果很好。但是,当我在我的 GUI 回调函数中 运行 这个脚本时,它的工作区是内部的而不是全局的?而且我无法从任何地方访问文件中的数据。

有没有办法读入数据以便在其他 GUI 回调中使用?

导入数据脚本

% Select the file
[fileName, pathName] = uigetfile('*.*','Pick Data File');
dataFile = [pathName, fileName];

%import data
allData = importdata(dataFile);

界面回调函数

function Open_File_Callback(hObject, eventdata, handles)

run ReadFile

gui 中的每个函数都有自己的 workspace,因此您基本上应该与其他工作区共享公开的变量,为此请查看 assignin,话虽如此,您的代码变为

function Open_File_Callback(hObject, eventdata, handles)
% Select the file
[fileName, pathName] = uigetfile('*.*','Pick Data File');
dataFile = [pathName, fileName];

%import data
allData = importdata(dataFile);

%assign to base workspace
assignin('base', 'tempData', allData);

此外,您可以在 this 常见问题 link

中找到有关主题的有用信息