- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(MATLABGUI编程技巧
Matlab GUI编程技巧
1. 如何使gui编的界面一运行就居中?a假如当前的figure的句柄是h,则在程序运行的刚开始,用这个命令,? ?? ?? ?? ?? ? set(h,visible,off);? ?? ?? ???%使h对应的图不可见.b 然后你再进行你的其它的操作,c最后,在程序的结尾部分,用这两个语句:? ?? ?? ?? ?? ?? ?? ?movegui(h,center);? ?%将这个图移到中央.详细用法参阅help??movegui? ?? ?? ?? ?? ?? ?? ?set(h,visible,on);? ???%恢复其可见性.function figureMiddledfigure;set(0,units,pixels);set(gcf,units,pixels);screenrect=get(0,screensize);screenwidth=screenrect(3);screenheight=screenrect(4);figwidth=600;figheight=200;figposition=[(screenwidth/2-figwidth/2) ...? ? (screenheight/2-figheight/2)...? ? figwidth figheight];set(gcf,position,figposition);
2. 有关GUI实时显示的问题首先,用MATLAB做实时显示其效果并不是很好,主要原因就是它的速度慢,尤其是你的程序中出现循环时,速度更慢.? ?前几天,我也做了一个实时显示的东西,我的做法如下:? ?? ?? ???1.建立一个图,如h=plot(x,y);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? set(h,erasemode,xor)??%设置擦除方式.? ?? ?? ?? ?2.建立一个死循环,不断的接受数据,并且不断的更新x,y? ?? ?? ???3.??用这个指令set(h,xdata,x,ydata,y) ,使x,y的数据不断的得到更新.? ?? ?? ?? ?4.用屏幕刷新指令drawnow进行刷新.? ?? ?? ???就这个方法就可以做到实时了.关于参数传递关于参数传递主要有三种方法:??1. 就是用定义全局变量的方法来实现,如global??a,等这种用法,这种一般用在小程序中,因为如果全局变量太多的话,会造成系统混乱.? ?2. 应用对象的userdata属性,直接通过对象的userdata属性来进行各个callback之间的数据存取操作.首先把数据存到一个特定的对象中,然后在取出来,如下:? ?? ?? ? set( ui_handle,userdata,value)? ?? ?? ?value=get(ui_handle,userdata)? ?? ?这种方法虽然简单,但是缺点是每个对象只能存取一个变量值.? ?3. 利用setappdata,getappdata,rmappdata函数来实现,这几个函数来进行数据传递是最有弹性的.使用方法和第二种方法类似.
怎么直接将下面一段.txt格式导到MATLAB中?用load命令 load e:\data\ccc.txt;我的文件是e盘data下的其实还有一个方法可以导入,有没有试过textread呢函数结构与参数传递最近简单整理了一下发过的东西,将大家比较困惑的两个问题,再强调一下。这个问题我也曾经想过很久很久。就是某个函数的子函数,可能具有复用性,而我又不想改变原来的函数,怎样才能调用这个子函数呢?那就是给每一个函数加一个壳。例如这个函数结构:function varargout = test_function( varargin ) % if nargin == 0 % 创建界面。% 即使不创建界面,也可以采用这种函数结构。figurehandle = test_generatefigurecontent; % 初始化函数,可以用于创建初始化数据。test_initfiguecontent(figurehandle); if nargout gt; 0 varargout{1} = figurehandle ; end elseif ischar( varargin{1} ) try if nargout gt; 0 [varargout{1:nargout}] = feval( varargin{:} ) ; else feval( varargin{:} ) ; end catch disp( lasterr ) ; end end
文档评论(0)