MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   在Matlab中系统更改多个.fig文件 (https://www.labfans.com/bbs/showthread.php?t=22813)

poster 2019-12-10 16:49

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

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

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

我正在考虑一次在[I]指南[/I] (Matlab的GUI开发环境)中打开每个窗口,并手动进行更改,但确实希望避免。我正在谈论数十个文件,将来我的操作可能必须更改。

也许会有一种方法可以从命令行控制[I]向导[/I] ?还是其他解决方案?


回答:
您可以使用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');

[url=https://stackoverflow.com/questions/1533026]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 23:22

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.