跨GUI,Matlab的数据

时间:2015-01-25 02:36:00

标签: matlab

所以我尝试使用setappdata和getappadata共享GUI数据。例如,让我们考虑一下这个

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

因此上述文件每隔0.5秒创建一个128x14矩阵并将其存储在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 个答案:

答案 0 :(得分:1)

您的代码似乎存在一些问题,但MATLAB告诉您生成错误的行不在您提供的代码段中,并且消息非常明确:

使用此命令(第83行):

lmno = setappdata(0,'eegData');

被禁止,因为setappdata不接受输出参数,因此抛出错误。您只能使用getappdata的作业。

需要考虑的其他要点:

1)确保您使用与get/setappdata相同的变量名称(即eegdataeegData ......但它可能是错字)

2)您似乎没有在循环中调用第二个脚本,因此setappdata在每次迭代时都会覆盖eegData的值。

希望有所帮助!