从gui运行脚本文件

从gui运行脚本文件

问题描述:

我已经使用导入工具将.txt文件数据导入为基本工作区的单元格数组。从gui运行脚本文件

现在我有使用GUIDE创建的GUI按钮,它将运行一个脚本,该脚本利用基础工作区变量创建另一个文件。

function pushbutton1_Callback(hObject, eventdata, handles) 
createfile; 

当我使用按钮其示出了未定义的函数或变量,即使该变量是在基工作区运行的CreateFile。

但是,当我在命令窗口中运行相同的文件一切都很好。任何建议为什么会发生这种情况

+2

每个回调(从按钮调用的函数)都有它自己的变量工作区,添加路径是你的文件位于你的回调中,并且应该工作。 –

+1

See:[Base and Function Workspaces](http://www.mathworks.com/help/matlab/matlab_prog/base-and-function-workspaces.html) – excaza

+0

所以我应该将基本工作区中存在的变量包含到函数工作区中? – redumpt

GUI拥有自己的工作空间,因此您必须在GUI初始化时提交基本工作空间变量。例如:yourGUI(yourData);

编辑GUI的OpeningFcn到这样的事情:

handles.InputData= varargin(1); 
%only for clear arrangement 
handles.InputData = handles.InputData{1, 1}; 

随意命名InputData,但不要忘记更新把手结构现在

guidata(hObject, handles); 

你可以在所有CallbackFunction中访问handles.InputData,但是请注意,在handles.InputData的每次更改后您必须登录guidata(hObject, handles);。请阅读documentation了解更多信息。

+0

将尝试此解决方案,我会让你知道.. – redumpt

+0

跟着你的第一个两行,并获得基地worksapce变量回调使用evalin ...这工程! – redumpt

哪个函数/变量是未定义的?什么是文件的名称和你分配给哪个变量?我猜(字面上),假设pushbutton1_Callback输入中没有一个是你提到的变量,如下所示:

函数和命令窗口不共享相同的工作区。如果你想从你的函数中“看到”某些东西,你必须将它包含在输入中。