当前位置:文档之家› matlabgui初学者教程

matlabgui初学者教程

什么是GUI呢? GUI是Graphical User Inteface 图形用户界面的意思。

象很多高级编程
语言一样。

Matlab也有图形用户界面开发环境。

随着计算机技术的飞速发展。

人与计算机
的通信方式也发生的很大的变化。

从原来的命令行通讯方式(例如很早的DOS系统)变化到
了现在的图形界面下的交互方式。

而现在绝大多数的应用程序都是在图形化用户界面下运行
的。

记得读书的时候。

大学开学不久。

学校很多同学就开始报考全国计算机等级考试了。

当然我也是其中的一分子。

其中C语言是大多数人选择的科目。

当时在学C语言的时候。

经常也会遇到人机交互的例子。

譬如一个计算两个数相加的程序。

运行程序后便切换到了Dos模式。

然后在此模式下输入两个数。

再回车。

才能返回运算结果。

当时就觉得很不方便。

也不友好。

后来才得知C语言是面向过程的语言。

是非面向对象的语言(VC++,VB,Matlab等是面向对象的)。

那么下面我们就来看看Matlab是如何简单、快速而友好地解决这类问题的吧。

Matlab GUI编程教程(适用于初学者)1首先我们新建一个GUI文件:File/New/GUI如下图所示;
选择Blank GUI(Default)
2•进入GUI开发环境以后添加两个编辑文本框。

6个静态文本框。

和一个按钮。

布置如下
图所示;
布置好各控件以后。

我们就可以来为这些控件编写程序来实现两数相加的功能了。

3 •我们先为数据1文本框添加代码;
点击上图所示红色方框。

选择edit1_Callback 。

光标便立刻移到下面这段代码的位置。

function edit1_Callback(hObject, eve ntdata, han dies)
% hObject han dle to editl (see GCBO)
% even tdata reserved - to be defi ned in a future version of MATLAB
% han dles structure with han dles and user data (see GUIDATA)
% Hin ts: get(hObject,'Stri ng') retur ns contents of editl as text % str2double(get(hObject,'Stri ng')) retur ns contents of editl as a double
然后在上面这段代码的下面插入如下代码:
9以字符串的形式来存储数据文本框1的内容•如果字符串不是数字。

则现实空白内容
in put = str2 num ( get ( hObject,' Stri ng '));
%佥查输入是否为空•如果为空,则默认显示为0
if (isempty (input ))
set (hObject,' String ',' 0')
end
guidata ( hObject, han dies );
这段代码使得输入被严格限制。

我们不能试图输入一个非数字。

4.为edit2_Callback 添加同样一段代码
5现在我们为计算按钮添加代码来实现把数据1和数据2相加的目的。

用3中同样的方法在m文件中找到pushbutton1_Callback 代码段如下;
function pushbutt on 1_Callback(hObject, even tdata, han dles)
% hObject handle to pushbutt on1 (see GCBO)
% even tdata reserved - to be defi ned in a future version of MATLAB
% han dles structure with han dles and user data (see GUIDATA)
在上面这段代码后添加以下代码;
a = get (handles.edit1,' String ');
b = get (handles.edit2,' String ');
% a and b are variables of Strings type, and n eed to be
% con verted to variables of Number type before they can
% be added together%
str2num (a) + str2num (b);
c = num2str (total );
% n eed to con vert the an swer back into Stri ng type to
% display it
set (handles.text1,' String ',c );
guidata (hObject, handles );
下面我们来对上面这段程序分析一下;
a = get (handles.edit1,' String ');
b = get (handles.edit2,' String ');
上面这行代码把用户输入的数据存入到变量a,变量b中;
%a,b是字符型变量。

在计算两者相加之前需把他们转换为数字型
total = str2num (a) + str2num (b);
这段代码实现两数相加
c = num2str( total );
set (handles.text3,' String ',c );
guidata (hObject, handles );
以上两行代码分别用来更新计算结果文本框和图形对象句柄。

一般Callback
回调函数都以guidata (hObject, handles ) ;j 结束以更新数据
程序运行如下:。

相关主题