2015-01-25 3 views
0

Итак, я попытался использовать данные GUI, используя setappdata и getappadata. например, позволяет рассматривать этоДанные через графический интерфейс, Matlab

matfile1.m 

h = EmotivEEG; 
h.Run 
for k = 1:4 
    out(:,:,k) = h.data + rand(1); 
    setappdata(0,'eegData', out(:,:,k); 
    pause(0.5); 
end 
h.delete 

поэтому выше файл создает 128x14 матрицу каждые o.5 секунд и хранить его в eegData

matfile2.m 

some_var = getappdata(0,'eegData') 
plot(some_var) 

это, кажется, работает, но не в то время как в цикле, если я попросите его построить, я получаю эту ошибку

Error using setappdata 
Too many output arguments. 
Error in eeg_live>eeg_live_OpeningFcn (line 83) 
lmno = setappdata(0,'eegData'); 
Error in gui_mainfcn (line 221) 
    feval(gui_State.gui_OpeningFcn, gui_hFigure, [], guidata(gui_hFigure), varargin{:}); 
Error in eeg_live (line 42) 
    gui_mainfcn(gui_State, varargin{:}); 
Error in Neucube>activation_Callback (line 3963) 
eeg_live 
Error in gui_mainfcn (line 96) 
     feval(varargin{:}); 
Error in Neucube (line 49) 
    gui_mainfcn(gui_State, varargin{:}); 
Error in @(hObject,eventdata)Neucube('activation_Callback',hObject,eventdata,guidata(hObject)) 
Error using pause 
Error while evaluating uicontrol Callback 

любая идея о том, как решить эту проблему.

благодарит заранее.

ответ

1

Там, кажется, некоторые проблемы с вашим кодом, но строка, которая говорит MATLAB вы генерирует ошибка не в этом фрагменте вы предоставили, и сообщение вполне понятно:

С помощью этой команды (строка 83) :

lmno = setappdata(0,'eegData'); 

запрещено, потому что setappdata НЕ принимает выходные аргументы, поэтому выбрасывается ошибка. Вы можете использовать назначение только с getappdata.

Другие вопросы для рассмотрения:

1) Убедитесь, что вы используете один и тот же имя переменной с get/setappdata (т.е. либо eegdataeegData или ... это может быть опечатка, хотя)

2) Вы надеваете» t, похоже, вызывает второй скрипт в вашем цикле, поэтому setappdata перезаписывает значение eegData на каждой итерации.

Надеюсь, что это поможет!

+0

спасибо. Опечатка. Его работа замечательная, но у меня есть еще один вопрос: что делать, если я хочу выстроить 'out (:,:, k)' одновременно? – Akshay

+0

, потому что если я рисую один раз в одном файле (рис. 1) и откройте второй файл (рис. 2), первый файл, кажется, остановится и продолжит во втором. возможно ли построить оба файла одновременно? – Akshay

+0

Я не уверен, что понял; может быть, вы могли бы создать фигуру с двумя подзаголовками и, альтернативно, создать графики? Посмотрите на свойство «Родитель» для осей; он позволяет вам выбрать, где вы хотите построить конкретные данные. –

Смежные вопросы