2009-10-07 74 views
1

我想瀏覽一個目錄,其中存儲了許多Matlab GUI(.fig文件及其相關的.m文件)並且系統地更改它們。對於每一個,我想搜索一個特定的彈出菜單,如果存在,刪除一些特定的選項。我通常使用get()和set()或類似的函數來搗鼓GUI,但是這些函數需要句柄,而且我不知道如何在不運行GUI時獲取句柄,也不會知道如何保存更改。在Matlab中系統地更改多個.fig文件

如果我打開一個.fig文本,它是無法理解的。

我正在考慮每次打開指南(Matlab的GUI開發環境)並手動更改它,但真的想避免它。我正在談論數十個文件,而且我的行動在未來可能不得不改變。

也許會有辦法從命令行控制指南?還是另一種解決方案

+0

通過「下拉菜單」,你的意思是「彈出式菜單」,或者在屏幕頂部的「文件,編輯,視圖」菜單類型? – MatlabDoug 2009-10-07 18:16:44

+0

通過「下拉菜單」我的意思是「彈出式菜單」。對不起,現在會改正 – 2009-10-07 21:26:48

回答

4

您可以使用hgloadopenfig加載.fig文件。這兩個函數都返回圖形的句柄。

一旦你有了圖的句柄,你可以使用findobj來獲得彈出菜單的句柄。然後setget正常更改菜單的選項,然後使用hgsave保存修改後的圖。

例如:

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

gcf()立即在open()獲取句柄後,可以通過編程方式完成許多數字。

相關問題