Попытка прочитать большой файл данных и сохранить его в рабочей области, чтобы другие функции могли использовать его - PullRequest
0 голосов
/ 20 января 2019

Я хочу, чтобы мой графический пользовательский интерфейс мог читать файл, содержащий информацию заголовка и несколько столбцов значений, и сохранять его, чтобы над данными могли выполняться другие действия, такие как среднее, максимальное, среднеквадратичное и т. Д.

Функция importdata прекрасно работает с файлами, которые я использую.У меня есть сценарий, который позволяет пользователю выбрать файл, который будет импортирован, и все данные хранятся в рабочей области.Работает отлично.Тем не менее, когда я запускаю этот скрипт в моей функции обратного вызова GUI, рабочая область it является внутренней, а не глобальной?и я нигде не могу получить доступ к данным из файла.

Есть ли способ прочитать данные, чтобы их можно было использовать в других обратных вызовах графического интерфейса?

Сценарий импорта данных

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

%import data
allData = importdata(dataFile);

Функция обратного вызова GUI

function Open_File_Callback(hObject, eventdata, handles)

run ReadFile

1 Ответ

0 голосов
/ 20 января 2019

Каждая функция в графическом интерфейсе имеет свой собственный 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);

дополнительно вы можете найти полезную информацию по теме в этой ссылке FAQ

...