【问题标题】:Running a script file from guide gui从指南 gui 运行脚本文件
【发布时间】:2016-03-02 22:07:07
【问题描述】:

我已使用导入工具将 .txt 文件数据作为元胞数组导入到基础工作区。

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

function pushbutton1_Callback(hObject, eventdata, handles)
createfile;

当我使用按钮运行 createfile 时,它​​会显示未定义的函数或变量,即使该变量位于基础工作区中。

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

【问题讨论】:

  • 每个回调(例如从按钮调用的函数)都有自己的变量工作区,添加路径是您的文件位于回调中并且应该可以工作。
  • 那么我应该将基础工作区中存在的变量包含到函数工作区吗?

标签: matlab


【解决方案1】:

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

将 GUI 的 OpeningFcn 编辑为如下内容:

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

随意重命名InputData,但不要忘记更新句柄结构

guidata(hObject, handles);

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

【讨论】:

    【解决方案2】:

    哪个函数/变量未定义?文件的名称是什么,您将其分配给哪个变量?我的猜测(字面意思)假设pushbutton1_Callback 输入都不是您提到的变量,则如下:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      相关资源
      最近更新 更多