代码之家  ›  专栏  ›  技术社区  ›  Emilio M Bumachar

在matlab中系统地修改多个.fig文件

  •  1
  • Emilio M Bumachar  · 技术社区  · 15 年前

    我想浏览一个目录,其中存储了许多matlab gui的(.fig文件及其相关的.m文件),并系统地更改它们。对于每一个,我都要搜索某个弹出菜单,如果它存在,就删除一些特定的选项。

    我通常使用get()和set()或类似的函数来处理GUI,但这些函数需要句柄,我不知道在不运行GUI时如何获取句柄,也不知道如何保存更改。

    如果我打开一个.fig作为文本,它是无法理解的。

    我正在考虑在 指导 (Matlab的GUI开发环境)并手动更改它,但真的想避免它。我说的是几十个文件,将来我的行为可能会有所改变。

    也许有办法控制 指导 从命令行?或者其他解决方案?

    2 回复  |  直到 15 年前
        1
  •  4
  •   richardthe3rd    15 年前

    可以使用加载.fig文件 hgload openfig . 这两个函数都返回图形的句柄。

    一旦你有了这个数字的手柄,你就可以使用 findobj 获取弹出菜单的句柄。然后 set get 正常情况下,更改菜单选项,然后使用 hgsave .

    例如:

    f = hgload('file.fig');
    menuH = findobj(f, 'Type', 'popup'); 
    set(menuH, 'String', new_options);
    hgsave(f, 'file.fig');
    
        2
  •  0
  •   Emilio M Bumachar    15 年前

    gcf()在open()之后立即获取句柄,可以对许多图形进行编程。