视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
关于MATLAB的GUI一些实用小技巧
2020-11-09 15:34:15 责编:小采
文档


一、数据传递的问题 数据传递的方法很多,也有很多相关的帖子,初步涉及这个东西的时候也参考了很多帖子,百度一下就可以看到很多,不给链接咯,介绍一个我最推荐的方法: setappdata和getappdata 函数原型是 setappdata (figureHandle,'varName',varValue)

一、数据传递的问题

数据传递的方法很多,也有很多相关的帖子,初步涉及这个东西的时候也参考了很多帖子,百度一下就可以看到很多,不给链接咯,介绍一个我最推荐的方法:

setappdata和getappdata

函数原型是

setappdata(figureHandle,'varName',varValue)

作用是在一个图像figureHandle上设置(或者创建)一个名为varName的应用程序变量,其值为varValue。

varValue = getappdata(figureHandle,'varName')

作用是从一个图像figureHandle上取出名为varName的应用程序变量,其返回值存储于varValue中。

其中

figureHandle 一个图形对象句柄,通常GUI程序的主窗口就是一个图形对象句柄,用handles.figureTag在GUI程序中引用主窗口对象,figureTag为主窗口的tag属性值

varName figureHandle上的应用程序变量的名称,可以与自己所写的程序的变量的名称不同,在上述函数原型中加注 ' ' 是提醒你这个变量名一定要是字符串类型

varValue setappdata中代表要保存的变量,可以是任何类型 ; getappdata中代表用来保存被取出的值的变量

TIPS : 在多窗口的GUI程序中最好用 setappdata(0,'varName',varValue) 来保存变量(如果未创建会自动创建) , 用

varValue =getappdata(0,'varName')

来获取保存的变量(如果未保存会返回 [ ] ,即为空 ) , 这里的 '0' 是根对象,这样做的好处是可以在不同的窗口之间调用(不仅仅是在同一个窗口的不同函数之间),而且不用考虑所保存的对象是哪一个,即使gcf变换后也不会出错

另外,你可能会发现我介绍的figureHandle 是图形对象句柄,其他对象的句柄也是可以的,不过这个用的相对多些

通过存储以及取出完成函数间以及窗口间的数据传递。EG:

函数1中

setappdata(handles.mainFigure,'matrixA',A)

函数2中

B = getappdata(handles.mainFigure,'matrixA')

这样我就把 A 的值传递到了 B 中。

另外,养成一个好的习惯,尤其是当你使用的是根对象来存储变量的时候,在使用完以后记得删除这些变量

rmappdata(figureHandle,'varName')

二、窗口的独占

其实这个问题很简单,只是当时搜索的时候搜索了太久太久,都没有点到正题,所以还是列出来。

在创建的时候,将 windowstyle 属性值设置为 'modal' 即可 ( 也用set来完成该属性的设置 )

三、在MATLAB中运行.EXE程序

在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。

TIPS : 在MATLAB中所有字符 ( 除了 ' ' 内的以及注释文字 ) 均用英文输入法,尤其是标点符号,这个很容易弄错

四、关于矩阵

MATLAB关于矩阵的运算是极其方便的了,不过在写比较繁琐的程序中要慎用哦。如果关于矩阵的操作需要操作多次,而实际上做了操作的仅仅是矩阵中的少部分元素的话,建议使用元素操作而不用矩阵操作,这样效率会高很多,笔者亲身体验过那个慢啊,受不了

其实还有很多小技巧,欢迎各位读者指出笔者的错误,更希望你们能把你们用MATLAB时候的一些点滴经验留在评论中~~~~

下载本文
显示全文
专题