在 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】:

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

获得图形句柄后,您可以使用findobj 获取弹出菜单的句柄。然后setget照常更改菜单的选项,然后使用hgsave保存修改后的图形。

例如:

f = hgload('file.fig');
menuH = findobj(f, 'Type', 'popup'); 
set(menuH, 'String', new_options);
hgsave(f, 'file.fig');

【讨论】:

【参考方案2】:

gcf() 在 open() 获取句柄后立即执行,并且可以通过编程方式为许多图形完成。

【讨论】:

以上是关于在 Matlab 中系统地更改多个 .fig 文件的主要内容,如果未能解决你的问题,请参考以下文章

matlab2010怎么在fig图中插入竖立的文本框

获得MATLAB中FIG文件的矩阵

打开 Matlab 保存的 .fig 文件的程序

MATLAB:如何将 fig 粘贴到 excel 中,然后保存并关闭 excel 文件?

Matlab:更改图例中条目的顺序

MATLAB:更改加载图形的线属性?