我使用的是MATLAB软件包(“EEGLAB”)中的函数。我正在使用的其中一个功能(“pop_selectcomp”)创建了一个GUI。但是,当我尝试与GUI交互时,会出现错误:未定义预期变量(在本例中为“EEG”,数据结构)。这很奇怪,因为pop_selectcomp将EEG作为输入。我发现在我调用pop_selectcomp之后在函数堆栈中的任何地方声明全局EEG会使EEG再次可用。这是我的函数堆栈的结构。
因此,将EEG声明为主脚本或数据处理功能中的全局可以解决问题。
我的解释是,当pop_selectcomp创建其GUI窗口时,它将在主工作区中的函数堆栈之外创建,或者类似的东西。因此,只有在函数调用之上声明全局变量时,EEG变量才可用。我对Matlab数据和GUI不是很熟悉,但我想通常pop_selectcomps没有这个问题,因为它不是作为一个子函数调用的。
有没有更好的方法让这项工作?我能以某种方式将pop_selectcomps的GUI指向正确的子工作区,在那里它会找到它需要的变量吗?如果必须的话,我可以修改pop_selectcomps,尽管那会更加混乱。该功能可在此处找到:
https://sccn.ucsd.edu/svn/software/eeglab/functions/popfunc/pop_selectcomps.m