批量修改的后台代码_图形用户界面实现批量修改参数名称

上一篇文章简要介绍了批量修改参数名称的方法,但是每一次批量修改不同的模块参数名称时,都需要手动修改代码。今天我们用Matlab自带的GUI功能来完成批量修改的任务。

GUI是什么?Graphical User Interface,图形用户界面,即已图形界面的方式帮助我们实现与计算机的交互,与直接编写代码、执行代码的方式比较,更方便普通人去使用。可以这样说,我们在电脑上安装的大部分软件,都带有GUI属性,方便非专业人员更好的使用软件。GUI只是帮助我们更舒服地使用代码,代码一直存在。

我们以上一篇文章中介绍的批量修改参数名称方法为例,来设计一个GUI界面,方便我们使用这些代码。

静态UI设计

UI设计属于静态设计,就是把图形界面设计成自己喜欢的样子。

在Matlab命令窗口输入guide,选择新建,即可打开GUI设计界面,如下图。

0c662af731dfd69a65aaf895ef77a036.png

为实现批量修改模块参数名称需要进行以下操作:

1)1个Panel:搭建一个面板,作为参数输入界面的外围框图,双击该图形,修改其Title为“参数替换”,并修改字体、边框线性等属性(这些都比较随意,修改至自己喜欢的样子即可)。

2)2个Edit Text:搭建两个输入编辑窗口,作为后面进行参数修改的输入模块,双击这两个图形,删除其String中的定义“Edit Text”,其他属性也可以按需修改。

3)2个Static Text:搭建两个静态窗口,作为上面两个Edit Text的定义,上级这两个图形,修改其String为“替换前参数名”、“替换后参数名”, 其他属性也可以按需修改。

4)1个Push Button:搭建一个按钮,作为确认动作的窗口,双击图形,修改其String为“确定”。

5)调整上述图形的大小、相对位置等,让整个界面尽量美观。

操作完以上步骤后,可得到下面的图形:

9edac8caa30130f115d5c1c38ad4db5c.png

点击保存,修改fig名称为“ParameterReplace”,就会同时保存下两个文件:.fig和.m。

.fig定义了刚刚设计的静态图形界面,.m文件定义了静态图形界面中各组件的回调函数,通过编辑这个.m文件可以帮助我们实现GUI界面的动态控制。

回调函数编写

图形用户界面添加交互组件后,此时运行出的GUI界面是静态的,用鼠标对界面上的组件和菜单进行操作时,不会产生任何响应。这时就需要编写各图形对象的回调函数,当用户用鼠标单击GUI界面上的某个组件或菜单时,使静态的GUI界面产生动态的变化。

回调函数的本质就是响应用户的操作,执行图形界面背后的代码,完成程序的正常执行。

为实现批量修改模块参数名称的任务,我们需要进行以下操作(更多操作指引请关注公众号视频内容):

1)右键“确定”按钮,选择菜单“View Callbacks”中的子菜单“CallBack”,就可以打开该Push Button按钮背后的回调函数。

2)把上一篇文章中的批量修改模块参数名称代码直接放在该“确定”按钮的回调函数下,稍作修改即可,具体代码如下。

function pushbutton1_Callback(hObject, eventdata, handles)old=get(handles.edit1,'String');new=get(handles.edit2,'String');constant=find_system(gcb,'BlockType','Constant','Value',old);for i=1:length(constant);set_param(constant{i},'Value',new);endgain=find_system(gcb,'BlockType','Gain','Gain',old);for i=1:length(gain);set_param(gain{i},'Gain',new);end

用get函数读取编辑窗口的替换前参数名称和替换后参数名称,用gcb获取当前模型的路径名。

理论上所有类型模块的参数名都需要进行上图所示的for循环,搜寻并替换,本文只做了Constant、Gain两种模块的处理。

GUI功能测试

以上完成了GUI静态图形和回调函数的设计,得到了以下两个文件。

2a9fb81e41c02a77865afab9c6338c64.png

下面进行GUI测试,具体操作步骤:

1)打开需要替换参数的模型newModel.slx,并用鼠标左键单击选中Subsystem;

1c5abb9f9e46ac4d1eec4623c2c7efe3.png

2)打开.m文件,点击运行,弹出以下用户界面;

e2a976057a060285cd1e5ed2524590b3.png

3)替换前参数名中输入“ConstPara1”,替换后参数名中输入“NewConstPara1”,点击确定,模型中的参数“ConstPara1”被成功替换为“NewConstPara1”。

a9b662b5e5ec903eff1f37a3d6eeed6f.png

测试通过。

以上用GUI界面成功实现了批量修改Simulink模块参数名称,相比手改代码方式,更友好更便捷。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值