【问题标题】:Running a GUI requires opening the .fig file in GUIDE运行 GUI 需要在 GUIDE 中打开 .fig 文件
【发布时间】:2013-03-28 09:55:51
【问题描述】:

我正在尝试运行我创建的 MATLAB GUI。如果我使用 GUIDE 打开 .fig 文件并在那里按下运行按钮,它会完美运行。

但是,当我在 MATLAB 的“当前文件夹”部分中双击 .fig 文件时,似乎无法找到 handles 变量。这会导致它在使用 handles 时给出错误。

为什么会这样?有修复/解决方法吗?

我使用的是 MATLAB R2011,但我也在 R2012 上尝试过。代码运行正常,GUI 显示也很好,但是在遇到handles 变量的那一刻,它给出了以下错误:

尝试引用非结构数组的字段。

【问题讨论】:

    标签: matlab user-interface matlab-figure matlab-guide


    【解决方案1】:

    当您使用 GUIDE 创建 GUI 时,它应该同时创建一个 .fig 文件和一个 .m 文件。要运行它,您应该运行.m 文件,而不是双击.fig 文件。

    .fig 文件只包含有关 GUI 布局的静态信息 - 其中没有任何可执行文件可以初始化 handles 等等。

    【讨论】:

    • 谢谢!这有帮助。然而,我有一个疑问。为什么我在 GUIDE 中打开图形并在那里按下运行按钮时它会起作用?
    • 因为它运行.m 文件。
    • @shashwat Sam 在这里有正确的答案。当您在 GUIDE 中按下运行按钮时,GUI 将执行,因为 GUIDE 将查找与您打开的图形同名的 M 文件。这在常规的 MATLAB 工作区中不起作用,因为没有什么可以告诉 MATLAB 您的 GUI 不是标准图形。
    • 更多细节:.fig 文件实际上是重命名的.zip 文件。您可以使用 WinZip 或其他压缩工具将其解压缩。里面是一个.mat 文件。加载它,您会发现它包含一个常规 MATLAB 变量,其中包含 GUI 中所有轴和 uicontrol 等的句柄转储。没有什么可以直接执行。在那里的某个地方,我不记得在哪里,它还存储了与 GUI 关联的.m 文件的名称。当您将图形加载到 GUIDE 中时,运行按钮会运行该 .m 文件。
    【解决方案2】:

    好吧,如果你想检查你的代码,如果你想编辑 GUI,请始终运行 .m 文件,请通过 guide 命令。如果您打开.fig 文件,您将获得一个无法执行且无法分析的文件。对应的.m 文件将为您的 GUI 提供相应的功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 2015-03-18
      • 2012-08-07
      • 1970-01-01
      • 2014-02-17
      • 2018-07-23
      • 2022-11-17
      相关资源
      最近更新 更多