跨 GUI、Matlab 的数据
Data across GUI, 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
所以上面的文件每 o.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
关于如何解决这个问题的任何想法。
提前致谢。
您的代码似乎有一些问题,但是 MATLAB 告诉您产生错误的行不在您提供的代码段中,而且消息很清楚:
使用此命令(第 83 行):
lmno = setappdata(0,'eegData');
被禁止,因为 setappdata
不接受输出参数,因此抛出错误。您只能使用 getappdata
.
的赋值
其他需要考虑的要点:
1) 确保您使用与 get/setappdata
相同的变量名称(即 eegdata
或 eegData
...不过可能是打字错误)
2) 您似乎没有在循环中调用第二个脚本,因此 setappdata
在每次迭代时都会覆盖 eegData
的值。
希望对您有所帮助!
所以我尝试使用 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
所以上面的文件每 o.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
关于如何解决这个问题的任何想法。
提前致谢。
您的代码似乎有一些问题,但是 MATLAB 告诉您产生错误的行不在您提供的代码段中,而且消息很清楚:
使用此命令(第 83 行):
lmno = setappdata(0,'eegData');
被禁止,因为 setappdata
不接受输出参数,因此抛出错误。您只能使用 getappdata
.
其他需要考虑的要点:
1) 确保您使用与 get/setappdata
相同的变量名称(即 eegdata
或 eegData
...不过可能是打字错误)
2) 您似乎没有在循环中调用第二个脚本,因此 setappdata
在每次迭代时都会覆盖 eegData
的值。
希望对您有所帮助!