qaydm1979的个人博客分享 http://blog.sciencenet.cn/u/qaydm1979

博文

matlab编程GUI基础

已有 9684 次阅读 2013-9-30 04:43 |个人分类:知识|系统分类:科研笔记| MATLAB

用户图像界面编程(GUI)是推广计算机软件的重要步骤,只有有良好的用户图像界面,别人使用你的软件才会变得非常容易,每一个按钮,下拉菜单都应该有很好的直观意义。如果用户按一下按钮,那按钮就要执行相应的功能,比如这个按钮上写着平均值,那按一下平均值这个按钮软件就应该会算出输入数据的平均值。


在matlan命令窗口敲入guide命令,就会出现一个设计GUI的界面,你可以现在几个按钮,几个文本窗口,几个下拉菜单,切换按钮(toggle button)等。设计GUI的界面如下面第一个图所示:

                                   

在GUI设计窗口内,我们可以加上一个按钮和一个静态文本窗口,然后保存,就会自动存成一个下面的以figure为格式的文件,同时自动生成一个matlab源代码程序,这些一个GUI的雏型就有了。下一步就是给系统生成的程序添加功能,你想让这个按钮做什么,你就要把他应该执行的命令表述清楚。计算机跟人的不同就是他只能执行死命令,比如你让它把几个球拿起来,你必须说明有那个手指,用多大,呈多大角度,球的起始和终止作表,动作路径,球和碗在文件夹,缺少任何一下就一定会给你一个bug, bug就是臭虫,即程序中阻止其运转的臭虫。                    

                                             

然后打开guide生成的程序,在里面添加要执行的命令,比如每按一下男,文件上的数字增加一个,那我就在文本框内显示按里 多少下按钮。guide产生的matlab程序包括打开figure文件的方程,每一个按钮有有对应的方程,方程就是一个执行独立功能或任务的子程序。比如我这里有一个按钮,名字是Ckick Here, 那我就有一个相同于他的子方程,方程名字就是:

function varagout = MyFirstButton_callback(h, eventdata, ... handles, varargin)

MyFirstButton就是按钮的标签即名字,每个按钮都有自己的名字,callback就是说这个方程是通过一个按钮激发(call)的程序,你点那个按钮这个方程就要run或执行。括号里的就是方程的argument, 即输入参数或数据,handles即把手,通过把手可以找到这个方程或程序,varargin即任何格式的输入,varagout即任何格式的输出。

function varagout = MyFirstButton_callback(h, eventdata, ... handles, varargin)

% declare and initialize variable to store the count persistent count

%百分号后面的东西都是注解,好的程序应该有很多注解,这样方便其它人理解。

if isempty(count)

   count = 0;

end;

%这个if循环是先问一下,我按没按过那个按钮。

%按了就把计数(count就是计数)加上1。

count = count +1;

%下面是产生一个新的字符串。

str = sprintf('Total Clicks: %d', count);

%如果你用过Linux,对上述表达一定很熟悉。print就是告诉程序在窗口打印或输出东西,printf中的f说明输出的东西要遵从一定的格式,f就是format. 括号中引号的部分就直接输出的,%d就是一个格式表达式,即参数count要按%d的格式输出,d就是decimal, 小数格式。


%最后每按一下按钮更新一下文本框

set (handles.MyFirstText, 'String', str);

整个程序的执行过程如下面所示:

                                                   


如果我按上面的绿色按钮4次,文本框里的数字就会变成4,我就会得到下面的结果:

           

                                                     

很多文献上发表的程序比上面的程序无非就是多了一些按钮,一些菜单,那些按钮具有更科学的意义,如计算FRET的统计分部,进行隐性马尔科夫模型分析等。下面的一个例子就是单分子FRET的matlab GUI数据分析软件窗口。

                 

下面这个例子就是单分子FIONA(fluorescent image with one nanometer resolution)软件的分析窗口。


                       


关于更多内容请参考附件。

GUI.pdf




https://blog.sciencenet.cn/blog-957815-728958.html

上一篇:小RNA与可卡因上瘾有关
下一篇:美国也有遍地是要饭花子的地方
收藏 IP: 128.32.142.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-3-28 19:00

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部