[转载] 关于matlab GUI的一点心得

本文介绍了MATLAB GUI设计的两种方式,包括fig文件方式和m文件方式。在m文件方式中,作者强调了建立控件、实现进度条的方法以及代码调试的注意事项。此外,还提到了m文件创建GUI的优越性,如代码复用、灵活性和可移植性。文章末尾讨论了fig文件和m文件运行的区别。
摘要由CSDN通过智能技术生成

   转载自 落落轻尘

[Fig文件方式,即使用菜单File->New->GUI来设计界面]


首先值得注意的是,在低版本matlab上制作的含GUI的m文件一般不能在高版本的matlab上面运行,但是从7.0版开始改进了一点,我试过 6.5版的含GUI的m文件可以在 7.0版上运行,但如果在7.0版上面修改过.fig文件,那么就不能回到6.5版上运行了(显示一堆错误,我没看懂,不知道能否通过修改使之重新可在 6.5版上运行,呵呵),而在7.0版上制作的含GUI的m文件就完全不能放到6.5版上运行了(也是同样的错误)。这可能是因为matlab各版本在 GUI上改动较大,所以都不支持向下兼容。也许兼容性差是使用GUI编写程序的最大麻烦。

其次,说说使用GUI的好处。不知道是否承袭了VC or BCB的习惯,我比较喜欢编写完程序后按快捷键运行(此时会自动保存m文件),但是,对于程序有输入参数的时候,如果不采用GUI方式,这显然是行不通的――当然了,可以在command window按“向上”键然后重新改写你想要的参数。对于一些较大型的程序,正因为我比较偏向于按F5运行程序,所以我会选择使用GUI方式。不过GUI 方式的好处就远不止于此了,它可以把几个功能相关的模块集中起来,使得不需要重新关闭、运行就能得到不同的结果,便于比较;可以减少figure满天飞的 现象,这在matlab中尤为明显;便于交互式地观看不同的数据,例如在我处理的fMRI问题中,希望观看每个三维点对应的时间序列,这时候需要提供交互 式的选择……不过,尽管GUI有很多好处,但是其缺点也是有的,除了上面提到的兼容性(移植性)以外,要管理、维护一个GUI界面也是比较麻烦的,相信有 其他语言的界面设计经验的朋友也知道这点。

再者,对GUI问题,说说我的一点经验吧。其实,matlab已经在这方面改进了不少,从控件的增加和教程的学习都可以看出来。例如6.5版本是没有Panel和Button Group这两个控件的,在2006a版本中就新增了这两个控件(这个好像7.0版就有了,不确定);教程方面,也使用了最为直观的视频教学方式,建议新手看看Creating a GUI with GUIDE 和Creating Graphical User Interfaces两节。所以,操作上的细节我就不多讲了,自己摸索一下就ok了。
至于编程时最为关键的参数传递问题,可以参考本论坛或者仿真论坛上面的“函数结构与参数传递”一文,作者整理得较完整,不过有点难懂。
这里我简单说一下吧:
[转cwit]关于参数传递的方法:
1. 在内存中提取:
① 采用function的varargin和varargout传送,
② 存在handle的ApplicationData中,
③保存在handles里面。当然还有其他方法;

2. 存在硬盘上,采用save和load;

3. 用全局变量,最次的办法,有时却是最好的办法;

我想,对于这里处理的GUI问题,一般不会用到save和load命令(要从mat文件读取数据初始化或者把数据存储到mat文件中例 外),“function的varargin和varargout传送”的方法也不较少使用(因为对于控件的回调函数,matlab规定了输入参数为 “hObject, eventdata, handles, varargin”,且一般没有返回值,所以不同于自定义的函数),所以剩下的方法就只有三种了&#x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值