在 Matlab 中系统地更改多个 .fig 文件
Posted
技术标签:
【中文标题】在 Matlab 中系统地更改多个 .fig 文件【英文标题】:Changing multiple .fig files in Matlab systematically 【发布时间】:2009-10-07 17:21:39 【问题描述】:我想浏览一个目录,其中存储了许多 Matlab GUI(.fig 文件及其相关的 .m 文件)并系统地更改它们。对于每个,我想搜索某个弹出菜单,如果存在,删除一些特定选项。
我通常使用 get() 和 set() 或类似的函数来摆弄 GUI,但是这些函数需要句柄,我不知道在不运行 GUI 时如何获取句柄,我也不知道如何保存更改。
如果我将 .fig 作为文本打开,则无法理解。
我正在考虑在 guide(Matlab 的 GUI 开发环境)中一次打开每个并手动更改它,但我真的很想避免它。我说的是几十个文件,将来我的操作可能不得不改变。
也许有办法从命令行控制guide?还是其他解决方案?
【问题讨论】:
“下拉菜单”是指“弹出菜单”,还是屏幕顶部的“文件、编辑、查看”类型的菜单? “下拉菜单”是指“弹出菜单”。抱歉,马上改正 【参考方案1】:您可以使用hgload
或openfig
加载.fig 文件。这两个函数都返回图形的句柄。
获得图形句柄后,您可以使用findobj
获取弹出菜单的句柄。然后set
和get
照常更改菜单的选项,然后使用hgsave
保存修改后的图形。
例如:
f = hgload('file.fig');
menuH = findobj(f, 'Type', 'popup');
set(menuH, 'String', new_options);
hgsave(f, 'file.fig');
【讨论】:
【参考方案2】:gcf() 在 open() 获取句柄后立即执行,并且可以通过编程方式为许多图形完成。
【讨论】:
以上是关于在 Matlab 中系统地更改多个 .fig 文件的主要内容,如果未能解决你的问题,请参考以下文章