系统地更改Matlab中的多个.fig文件

时间:2009-10-07 17:21:39

标签: user-interface matlab

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

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

如果我打开.fig作为文本,则无法理解。

我正在考虑在指南(Matlab的GUI开发环境)中逐一打开并手动更改它,但我们真的想避免它。我说的是几十个文件,我的行动可能会在将来发生变化。

也许有办法从命令行控制指南?还是另一种解决方案?

2 个答案:

答案 0 :(得分:4)

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

一旦掌握了数字的句柄,就可以使用findobj来获取弹出菜单的句柄。然后setget正常更改菜单选项,然后使用hgsave保存修改后的数字。

例如:

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

答案 1 :(得分:0)

gcf()在open()之后立即获取句柄,并且可以通过编程方式完成许多数字。