文档库 最新最全的文档下载
当前位置:文档库 › MATLAB中GUI用户图形界面学习

MATLAB中GUI用户图形界面学习

MATLAB中GUI用户图形界面学习
MATLAB中GUI用户图形界面学习

GUI指导教程系列(1):GUI入门基本操作

为什么在MATLAB中要使用GUI呢?其实GUI就是Matlab中的Visual Basic,是面向对象的编程,可以使Matlab程序的终端用户,即使不懂的Matlab也可以轻易操作该程序!

如果没有图形用户界面(GUI)我们只能从命令行(Command Window)中调用相关程序,这相对比较繁琐,并且不是所有用户都是这个能力。就好比计算机的DOS 系统,在有windows的情况下,您会选择DOS吗?当然我们也不排除骨灰级的人物!

在本节教程我们主要针对没有GUI创建和使用经历的网友,但是必要的MATLAB 基础知识是需要的。在教程中我们将创建一个简单的GUI程序,它执行两个数的加法运行,然后显示其运算结果。

好下面开始我们的教程!

一、打开和创建GUI界面

1、首先打开Matlab,在Command Window中输入guide回车

2、此时打开GUI编辑器GUIDE(GUI Developer的缩写)

2.1 界面上有两个标签也“Creat New GUI”和“Open Existing GUI”

如果创建新的GUI此时我们选择第一个标签页,但如果打开其它已经存在的GUI 就点击第二个标签吧

2.2 这里我们选择第一个标签下的“Blank GUI”(空白GUI),下面还有几个系统GUI模版,你可以根据需要选择其它的。

2.3 点击“OK”我们正式进入GUIDE界面,呵呵,是不是感觉似曾相识

3、添加你需要的控件到figure中

在添加控件之前,您最好对您的GUI界面布局已经有一定的构思了,否则盲目性太大了不利于您的编程。下面是我们构思的布局。

二、添加控件和设置属性

在正式讲解之前,我们先讲解下GUI中的鼠标基本操作

(a) 在左边的控件面板中鼠标左击选择您需要的控件,然后放开鼠标

(b) 在右边的figure中按住左键,画出您的控件,于是空间就在figure上

(c) 你可以用鼠标拖拽figure上所有控件,来改变他们的位置

(d) 在控件上双击鼠标左键(右击是快捷菜单)可打开控件属性面板

1、从上面的布局构思,我们知道本GUI需要以下控件

:三个“编辑文本框”(Edit Text)

:三个“静态文本框”(Static Text)

:一个“确定按钮”(Pushbutton)

按照上面介绍的鼠标操作方法,将这6个控件拖到右边的figure中,如下图所示

2、接下来就是编辑这些控件的属性

好,下面从Static Text开始吧,双击其中一个“静态文本块”,将跳出该控件的“属性查看器”(Property Inspector)

GUI控件的几个常用属性说明如下:

position:指示空间在figure中的位置

font**:字体相关属性

string:相当如VB中的caption,就是显示在控件上的文字

tag:控件的唯一标识符,相当于ID,我们需要tag来指定某一个空间

2.1 在这里我们修改它的“string”属性为“+”

2.2 同理修改它的“fontsize”属性为20

在编辑完这些属性后,直接点击右上角的“关闭”按钮,关闭属性查看器,此时属性会自动保存。回到GUIDE,如果控件上的文字被部分隐盖,此时可以通过鼠标拖拽改变控件的大小。

二、添加控件和设置属性

在正式讲解之前,我们先讲解下GUI中的鼠标基本操作

(a) 在左边的控件面板中鼠标左击选择您需要的控件,然后放开鼠标

(b) 在右边的figure中按住左键,画出您的控件,于是空间就在figure上

(c) 你可以用鼠标拖拽figure上所有控件,来改变他们的位置

(d) 在控件上双击鼠标左键(右击是快捷菜单)可打开控件属性面板

1、从上面的布局构思,我们知道本GUI需要以下控件

:三个“编辑文本框”(Edit Text)

:三个“静态文本框”(Static Text)

:一个“确定按钮”(Pushbutton)

按照上面介绍的鼠标操作方法,将这6个控件拖到右边的figure中,如下图所示

2、接下来就是编辑这些控件的属性

好,下面从Static Text开始吧,双击其中一个“静态文本块”,将跳出该控件的“属性查看器”(Property Inspector)

GUI控件的几个常用属性说明如下:

position:指示空间在figure中的位置

font**:字体相关属性

string:相当如VB中的caption,就是显示在控件上的文字

tag:控件的唯一标识符,相当于ID,我们需要tag来指定某一个空间

2.1 在这里我们修改它的“string”属性为“+”

2.2 同理修改它的“fontsize”属性为20

在编辑完这些属性后,直接点击右上角的“关闭”按钮,关闭属性查看器,此时属性会自动保存。回到GUIDE,如果控件上的文字被部分隐盖,此时可以通过鼠标拖拽改变控件的大小

2.3 重复上面的操作

(1)将第二个“Static Text”的“string”改为“=”,“fontsize”为20

(2)第三个“Static Text”的“string”改为“My Adder GUI”,“fontsize”为20

于是,我们将得到如下所示的GUI界面

2.4 下面双击Edit Text,修改编辑文本框的属性

(1)第一个“Edit Text”的用来存储第一个加数,我们将“string”改为“0”,“tag”改为“input1_editText”

(2)第二个“Edit Text”的用来存储第二个加数,我们将“string”改为“0”,“tag”改为“input2_editText”

(3)第三个“Edit Text”的“string”改为“0”,“tag”为“answer_stat ic Text”

2.5 修改Pushbutton按钮的属性,“string”改为“Add!”,“tag”改为“a dd_pushbutton”

再次预览下我们现在得到的GUI界面

3、重新布局和移动控件位置,使其美观

将上面编辑完的GUI程序保存为myAdder,此时在当前目录下,Matlab将自动生成如下来个两个文件myAdder.m和myAdder.fig。.fig文件包含了程序的图形用户界面,.m文中包含了GUI所需的回调函数和其他必须代码。

三、书写GUI回调函数(callback)代码

在保存GUI程序时,Matlab会自动生成.fig和.m文件,其中的.m就是我们现在要操作的对象。

我们就是M文件中添加控件的回调函数相应用户的操作!这也是GUI编程的核心内容,它要求你必须掌握Matlab基本编程以及图形句柄语句!

打开.m文件,发现里面有很多function的代码,看得我们眼花缭乱,呵呵,不要胆怯!本教程是初级教程,我们只涉及里面的callback,其他的我们可以暂时置之不理!至于其它的我们以后的教程中对做相关介绍!

在正式讲解之前,一个小使用技巧,Matlab Editor(代码编辑器)工具栏显示函数按钮

,可以让我们快速跳转我们需要的函数位置!这个在.m内容很多的时候很有用哦!

1、在Editor中工具栏的函数Show Function中选择input1_editText_Callbac k

或者右击tag为input1_editText的编辑文本框,View Callback→Callback

2、此时光标会跳转到.m文件的function input1_editText_Callback处,方便我们直接编辑

1.function input1_editText_Callback(hObject, eventdata, handl

es)

2.% hObject handle to input1_editText (see GCBO)

3.% eventdata reserved - to be defined in a future version of

MATLAB

4.% handles structure with handles and user data (see GUIDAT

A)

5.

6.% Hint: get(hObject,'String') returns contents of input1_ed

itText as text

7.% str2double(get(hObject,'String')) returns contents of

8.% input1_editText as a double

复制代码

在上面代码下添加如下MATLAB代码

1.% handles 包含figure中所有图形对象句柄的结构体,如果我们想

引用tag为mytag的控件,使用handles.mytag

2.% set/get 函数是用来设置/获取某个控件属性

3.% 使用get命令获取第一个加数,并将它转换成数值

4.input = str2num(get(hObject,'String')); % string属性是字符

串,所以必须转换成数值

5.

6.% 检验输入是否为空,是则将它置为0

7.if (isempty(input))

8.set(hObject,'String','0')

9.end

10.

11.% 保存handles结构体,只要在handles结构体有改变时,才需要保

12.guidata(hObject, handles); % 这里由于handles没有改变,故这

里其实没有必要,但是为了避免潜在的不必要麻烦,建议在所有Cal

lback最后都添加该命令

复制代码

3、为input2_editText_Callback添加完全相同的代码

4、编辑add_pushbutton_Callback回调函数,使用上面提到的方法,将光标定位到

1.% --- Executes on button press in add_pushbutton.

2.function add_pushbutton_Callback(hObject, eventdata, handle

s)

3.% hObject handle to add_pushbutton (see GCBO)

4.% eventdata reserved - to be defined in a future version of

MATLAB

5.% handles structure with handles and user data (see GUIDAT

A)

复制代码

在后面我们添加上如下代码

1. a = get(handles.input1_editText,'String');

2. b = get(handles.input2_editText,'String');

3.% a和b是字符串变量,我们需要使用str2double函数将其转换为

数值

4.% 然后才能相加,否则字符串是没法相加的

5.total = str2num(a) + str2num(b); % 格式转换,转换为数值

6.% 由于string属性是字符串,所以必须将两个数的和转换为字符串

7. c = num2str(total); % 转换为字符串

8.% 将结果赋值给answer_staticText空间的string属性,于是就可

以显示结果了

9.set(handles.answer_staticText,'String',c);

10.guidata(hObject, handles); % 更新结构体

复制代码

恭喜您,到此为此这个GUI程序就完成了!接下来就可以运行和演示它了!

有一个小技巧要告诉大家的,如果您在第一次保存GUI程序时,不想让Matlab 为每一个callback回调函数自动生成注释文本,可以如下操作:File→Prefer ences...

如果不想让Matlab自动生成fig文件,而只是生成M文件,可以如下操作:To ols→GUI Option

四、GUI程序打开、运行和发布

1、想在GUIDE中打开一个写好的GUI程序,可有两种方法

1.1 如上面所说的,在打开GUIDE界面时,我们可以选择“Open Existing GUI”,然后选中你需要打开的GUI程序

1.2 直接在Current Directory选中*.fig文件,然后右击选择“Open In GUID E”

2、运行编辑好的GUI程序方法主要有三种方法

2.1 点击GUIDE工具栏的run按钮

,如下图所示

2.2 从Command Window命令行运行,首先将MATLAB当前目录切换到*.fig和*. m文件所在目录(两个必须同在当前目录或者都在搜索路径下)

接着在Command Window中输入GUI的文件名(不需要扩展名)myAdder,然后回车

2.3 直接在Current Directory中选中myAdder.m,右击选择“Run File”即可通过上面三种方法中任意一种,GUI程序将开始运行,并显示如下

3、执行GUI程序功能

在两个文本框中输入分别输入两个加数,然后点击Add!按钮,此时和将显示在“=”右边的文本框中!

Matlab GUI编程教程

Matlab GUI编程教程 介绍 什么是GUI呢 ? GUI是Graphical User Interface 图形用户界面的意思,象很多高级编程语言一样,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, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

一个简单的Matlab_GUI编程实例

Matlab GUI编程教程(适用于初学者) 1.首先我们新建一个GUI文件:如下图所示; 选择Blank GUI(Default) 2.进入GUI开发环境以后添加两个编辑文本框,6个静态文本框,和一个按钮,布置如下

图所示; 布置好各控件以后,我们就可以来为这些控件编写程序来实现两数相加的功能了。3.我们先为数据1文本框添加代码; 点击上图所示红色方框,选择edit1_Callback,光标便立刻移到下面这段代码的位置。 1. 2. 3.function edit1_Callback(hObject, eventdata, handles) 4.% hObject handle to edit1 (see GCBO) 5.% eventdata reserved - to be defined in a future version of MATLAB

6.% handles structure with handles and user data (see GUIDATA) 7.% Hints: get(hObject,'String') returns contents of edit1 as text 8.% str2double(get(hObject,'String')) returns contents of edit1 as a double 复制代码 然后在上面这段代码的下面插入如下代码: 1. 2.%以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字,则现实空白内容input = str2num(get(hObject,'String')); %检查输入是否为空. 如果为空,则默认显示为0if (isempty(input)) set(hObject,'String','0')endguidata(hObject, handles); 复制代码 这段代码使得输入被严格限制,我们不能试图输入一个非数字。 4.为edit2_Callback添加同样一段代码 5 现在我们为计算按钮添加代码来实现把数据1和数据2相加的目的。 用3中同样的方法在m文件中找到pushbutton1_Callback代码段 如下; 1.function pushbutton1_Callback(hObject, eventdata, handles) 2.% hObject handle to pushbutton1 (see GCBO) 3.% eventdata reserved - to be defined in a future version of MATLAB 4.% handles structure with handles and user data (see GUIDATA) 复制代码

Matlab gui新手入门指南

1、从最简单的开始 编程最基本的目的就是——我执行一个操作,程序做出一个反应。 “一个操作”包括:点击鼠标,拖动滑块,填写数据,选择选项…… “做出一个反应”包括:计算一些东西,然后储存在哪里,或者贴个图出来,或者显示在哪里…… -------------------------------------------------------------------------------------------------------------------编程的基本思想: 目的->当点击按钮A时,然后执行任务C, 则->进入按钮A的回调函数callback里,写下任务C的代码。 -------------------------------------------------------------------------------------------------------------------a:不知道callback在哪??右键单击按钮,view callbacks->选择callback)别的控件也一样。 a:不同的回调函数啥意思?? callBack 最常用的就是它。如果控件是按钮,那点击按钮时,则按钮下的Callback就会执行;如果是滑块,则拖动滑块时,滑块名下的callback就会执行;总之,就是对控件默认操作时,matlab后台就会自动调用它名下的的callback。正常用途,全放在callback下就够了。如果其他的,实在是想知道,了解一下也未尝不可。 ButtonDownFcn 就是鼠标在它(代指各种控件)上面点击一下,你放在这个函数名下的代码就会执行。(ps:按钮的callback也是点击,所以会覆盖掉这个buttondownfcn。) CreateFcn 顾名思义,在生成这个控件,显示之前,执行你放在这个函数名下的代码; DeleteFcn 一样。在控件要销毁,但是被毁灭之前执行这个函数名下的代码。貌似“真的要退出吗”这一类就是写在这里。 KeyPressFcn 当前控件获得焦点且有按键按下时执行。(什么是焦点?就是这个控件被鼠标点了(或者是tab轮选到了)。你打开一个记事本,然后再点这个网页,再随便按几个按键,记事本上有字不?没有对吧。因为它没获得焦点,所以你的按键它不会反应的。只有你最后再点它一下,再按几个按键,结果怎么样?有字了吧?)这里的KeyPressFcn也是一样的道理。 一般在这下面的代码还会判断下按键是什么,然后执行相应的代码。 ResizeFcn,SelectionChangeFcn不常用。也懒得去看了。附几句,控件都有Resize的属性,好像默认是不可调整,如果要用到这个函数,去把它打开先。 SelectionChangeFcn 是在群按钮组件中,改变选择时,所执行的函数。 哪些控件支持哪些回调函数?很简单,你在它上面右键就可以看到了,点进去就可以编辑了。 可以在property inspect中在需要的回调函数下设置%automatic就可以自动添加相应的回调函数框架。 2、常用控件代码框架参考 --------------------------------------------------------------------- Toggle Button的callback一般写法

matlab中gui教程

11 图形用户界面(GUI )制作 用户界面(或接口)是指:人与机器(或程序)之间交互作用的工具和方法。如键盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。 图形用户界面(Graphical User Interfaces ,GUI )则是由窗口、光标、按键、菜单、文字说明等对象(Objects )构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。 假如读者所从事的数据分析、解方程、计算结果可视工作比较单一,那么一般不会考虑GUI 的制作。但是如果读者想向别人提供应用程序,想进行某种技术、方法的演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面也许是最好的选择之一。 MATLAB 为表现其基本功能而设计的演示程序demo 是使用图形界面的最好范例。MATLAB 的用户,在指令窗中运行demo 打开那图形界面后,只要用鼠标进行选择和点击,就可浏览那丰富多彩的内容。 即便比较熟悉MATLAB 的读者,在他初次编写GUI 程序时,也会感到棘手。为使读者获得制作自己GUI 的体验,本章“入门”节提供了一个简单的示例。读者只要输入所提供的程序,就可引出相应的界面。 本章第2节叙述图形用户界面的设计原则和一般制作步骤。第3、4节分别介绍用户菜单、用户控件的制作。出于“由浅入深”的考虑,前4节制作GUI 是通过M 脚本文件实现的。利用M 函数文件制作GUI ,需要解决数据传递问题,为此专设第5节给予阐述和示例。MATLAB 5.x 版为方便用户制作图形界面,提供了一个交互式的设计工具guide 。关于该工具的使用方法,被放在第6节中,以一个综合例题为设计目标逐步展开。 在此提醒读者,假如要比较准确的理解本章程序和掌握本章内容,请先阅读第10章关于图柄的内容。 11.1 入门 【*例11.1-1】对于传递函数为1 212++=s s G ζ的归一化二阶系统,制作一个能绘制该系统单位阶跃响应的图形用户界面。本例演示:(A )图形界面的大致生成过程;(B )静态文本和编辑框的生成;(C )坐标方格控制键的形成;(D )如何使用该界面。 (1)产生图形窗和轴位框: clf reset H=axes('unit','normalized','position',[0,0,1,1],'visible','off'); set(gcf,'currentaxes',H); str='\fontname{隶书}归一化二阶系统的阶跃响应曲线'; text(0.12,0.93,str,'fontsize',13); h_fig=get(H,'parent'); set(h_fig,'unit','normalized','position',[0.1,0.2,0.7,0.4]); h_axes=axes('parent',h_fig,... 'unit','normalized','position',[0.1,0.15,0.55,0.7],... 'xlim',[0 15],'ylim',[0 1.8],'fontsize',8);

matlab gui教程

什么是GUI呢? GUI是Graphical User Interface 图形用户界面的意思,象很多高级编程语言一样,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, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double 然后在上面这段代码的下面插入如下代码: %以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字, 则现实空白内容 input = str2num(get(hObject,'String')); %检查输入是否为空. 如果为空,则默认显示为0 if(isempty(input)) set(hObject,'String','0')

一个实例搞定MATLAB界面编程(最好的matlab gui界面编程入门教程)

一个实例搞定MATLAB界面编程 作者:彭军 邮件:pjun9@https://www.wendangku.net/doc/db2975835.html, 博客:https://www.wendangku.net/doc/db2975835.html,/pengjun 下面请跟我一步一步做一个图像处理的程序,如果您坚持做完这个实例,我想MATLAB界面编程对您而言,就没有什么难度了。当然,我这里说的是,您首先要有一定的MATLAB 编程基础。还有,我的MATLAB版本是2008a。在2008a以前的版本中没有工具栏编辑器,如果需要工具栏要手动写程序,这个我就不多讲了。好了,废话少说,跟我来吧! 在MATLAB的命令窗口(Command Window)中运行guide命令,来打开GUIDE界面,如下: 然后,选择空模板(Blang GUI),点击OK,即可打开GUIDE的设计界面,如下:

点击工具栏上的菜单编辑器(Menu Editor),打开菜单编辑器,如下: 在Menu Bar中新建一个菜单项,名字为“文件”,其他设置请看下图: 在“文件”菜单下添加菜单项:“打开”,“保存”,“退出”。见下图:

如果需要在菜单项“退出”上面添加一个分割线的话,选中“Separator above this item”就行了。

保存我的界面为pjimage.fig.保存完毕之后,会自动打开pjimage.m文件,而我们所有的程序都是要写在这个M文件里面的。在编程中,我们的每一个鼠标动作都对应一个Callback 函数。那么我们的菜单项也是如此的。 在界面上,单击鼠标右键选择“Property Inspector”,即可打开属性窗口。当我们点击不同的控件时,其对应的属性都会在这里显示,我们可以进行修改。最主要的属性莫过于Tag属性和String属性。 设置当前Figure窗口的Tag属性为:figure_pjimage,窗口的标题(Name属性)为:图像处理实例。如下: 然后,点击工具栏的保存按钮。之后,点击工具栏的运行按钮(Run Figure)。注意,工具栏的图标都会有提示的,像运行按钮的提示就是Run Figure.我们会看到如下的界面: 那说明,我们保存的.fig文件的目录不是当前目录,但是没关系啊,我们只要点击“Change Directory”来改变当前目录。当然,如果你想把当前目录添加到MATLAB路径也可以,那就点击“Add to Path”就OK了。我在这里推荐点击“Change Directory”,因为没有什么太大必要把其添加到MATLAB路径中,一般是工具箱需要添加或者我们的函数或程序写完了,而在MATLAB的命令窗口找不到我们的函数的时候,我们可以将函数或程序所在的目录添加到MATLAB路径。 总之吧,点那个按钮,要看个人的爱好了。不管点击两个按钮的那一个按钮,都会正确的运行程序的。 我们的程序运行时的样子,是这样的:

经典GUI基础入门:MATLAB中GUI用户图形界面学习

GUI指导教程系列(1):GUI入门基本操作 为什么在MATLAB中要使用GUI呢?其实GUI就是Matlab中的Visual Basic,是面向对象的编程,可以使Matlab程序的终端用户,即使不懂的Matlab也可以轻易操作该程序! 如果没有图形用户界面(GUI)我们只能从命令行(Command Window)中调用相关程序,这相对比较繁琐,并且不是所有用户都是这个能力。就好比计算机的DOS 系统,在有windows的情况下,您会选择DOS吗?当然我们也不排除骨灰级的人物! 在本节教程我们主要针对没有GUI创建和使用经历的网友,但是必要的MATLAB 基础知识是需要的。在教程中我们将创建一个简单的GUI程序,它执行两个数的加法运行,然后显示其运算结果。 好下面开始我们的教程! 一、打开和创建GUI界面 1、首先打开Matlab,在Command Window中输入guide回车 2、此时打开GUI编辑器GUIDE(GUI Developer的缩写) 2.1 界面上有两个标签也“Creat New GUI”和“Open Existing GUI” 如果创建新的GUI此时我们选择第一个标签页,但如果打开其它已经存在的GUI 就点击第二个标签吧

2.2 这里我们选择第一个标签下的“Blank GUI”(空白GUI),下面还有几个系统GUI模版,你可以根据需要选择其它的。 2.3 点击“OK”我们正式进入GUIDE界面,呵呵,是不是感觉似曾相识 3、添加你需要的控件到figure中 在添加控件之前,您最好对您的GUI界面布局已经有一定的构思了,否则盲目性太大了不利于您的编程。下面是我们构思的布局。

MATLAB+GUI入门实例

1.首先我们新建一个GUI文件:File/New/GUI 如下图所示; 选择Blank GUI(Default) 2.进入GUI开发环境以后添加两个编辑文本框,6个静态文本框,和一个按钮,布置如下图所示;

布置好各控件以后,我们就可以来为这些控件编写程序来实现两数相加的功能了。 3.我们先为数据1文本框添加代码; 点击上图所示红色方框,选择edit1_Callback,光标便立刻移到下面这段代码的位置。function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,’String’) returns contents of edit1 as text % str2double(get(hObject,’String’)) returns contents of edit1 as a

double 然后在上面这段代码的下面插入如下代码: %以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字,则现实空白内容input= str2num(get(hObject,’String‘)); %检查输入是否为空. 如果为空,则默认显示为0 if(isempty(input)) set(hObject,’String‘,’0‘) end guidata(hObject, handles); 这段代码使得输入被严格限制,我们不能试图输入一个非数字。 4.为edit2_Callback添加同样一段代码 5 现在我们为计算按钮添加代码来实现把数据1和数据2相加的目的。 用3中同样的方法在m文件中找到pushbutton1_Callback代码段如下; function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) 在上面这段代码后添加以下代码; a = get(handles.edit1,’String‘); b = get(handles.edit12,’String‘); % a and b are variables of Strings type, and need to be converted % to variables of Number type before they can be added together total = str2num(a) + str2num(b);

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 );

Matlab GUI教程

Matlab GUI教程 北京索为高科系统技术有限公司雒海涛2011-02-11 学习目的: 学会用matlab gui设计用户界面,并编写响应程序。 学习步骤: 一、启动matlab,打开gui编辑器 弹出下面对话框 有四种GUI类型,我们这儿先选择第一种,点击OK按钮。

二、在弹出的gui设计器中按照如下步骤设计初步界面 拖入第一个控件后界面就可以保存了,点击存盘按钮进行保存,双击生成的标签控件按照图示步骤修改属性值。

点击保存后自动弹出生成的一个m文件,这儿叫MyT est.m文件,如下图,在里面添加对应的界面响应程序。 同时可以看到存储目录下会生成两个文件,一个是刚才弹出的m文件,另外一个就是界面文件.fig,所有界面相关的代码都放在该文件内,如下图:

三、设计一个完整的界面 在主窗口上绘制两个标签(static text),三个文本框(edit text)以及一个按钮(push button),如下图: 对界面进行一下修改,双击各个控件在弹出的属性窗口,将三个文本框的string属性都修改为0,将两个标签修改为“+”和“=”,将按钮的string属性修改为“计算”,修改完成后界面如下图所示,界面字体可以通过控件的fontsize属性修改。

为了便于在编写程序的时候区分各个控件,可以修改各个控件的唯一标示(tag属性),三个文本框默认是(edit1,edit2和edit3),修改为edit_num1, edit_num2和edit_total,修改完 成后,可以运行预览一下界面了,点击下图所示的绿色箭头 弹出提示,当前目录不是工作目录, 弹出设计窗口如下图:

matlab_gui初学者教程

什么是GUI 呢 ? GUI 是Graphical User Interface 图形用户界面的意思。象很多高级编程语言一样。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, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double 然后在上面这段代码的下面插入如下代码: %以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字。 则现实空白内容 input = str2num(get(hObject,'String')); %检查输入是否为空. 如果为空,则默认显示为0 if(isempty(input)) set(hObject,'String','0')

MATLAB GUI入门实例详解,让你轻松掌握GUI

Matlab实例讲解 本文档通过一个简单的实例让你学会matlab GUI的制作流程。首先,图形用户界面GUI(Graphical User Interfaces)是一种用户和计算机进行信息交流的工具和方法,由各种图形对象组成。在这种用户界面下,用户的命令和对程序的控制是通过鼠标等输入设备“选择”各种图形对象来实现的。开发者只需在由软件开发工具自动生成的程序代码中添加自己的运算或控制代码,就可以完成应用程序的设计。 例建立加法计算器程序 步骤: 1.新建一个GUI文件:选择Blank GUI(Default) 2.进入GUI开发环境以后添加两个编辑文本框,6个静态文本框,和一个按钮,布置如下图所示;(+=数据1绿色显示框等都是静态文本框) 布置好各控件以后,就可以来为这些控件编写程序来实现两数相加的功能了。

3.为数据1文本框添加代码 点击上图所示红色方框,选择edit1_Callback,光标便立刻移到下面这段代码的位置。function edit1_Callback(hObject,eventdata,handles) %hObject handle to edit1(see GCBO) %eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA) %Hints:get(hObject,’String’)returns contents of edit1as text %str2double(get(hObject,’String’))returns contents of edit1as a double 然后在上面这段代码的下面插入如下代码: %以字符串的形式来存储数据文本框1的内容.如果字符串不是数字,则现实空白内容input=str2num(get(hObject,’String’)); %检查输入是否为空.如果为空,则默认显示为0 if(isempty(input)) set(hObject,’String’,’0’) end guidata(hObject,handles); 这段代码使得输入被严格限制,我们不能试图输入一个非数字。 4.为edit2_Callback添加同样一段代码 5.为计算按钮添加代码来实现把数据1和数据2相加的目的。 用3中同样的方法在m文件中找到pushbutton1_Callback代码段如下; function pushbutton1_Callback(hObject,eventdata,handles) %hObject handle to pushbutton1(see GCBO) %eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA) 在上面这段代码后添加以下代码; a=get(handles.edit1,’String‘); b=get(handles.edit2,’String‘); %a and b are variables of Strings type,and need to be converted %to variables of Number type before they can be added together total=str2num(a)+str2num(b); c=num2str(total);

MATLAB-GUI入门简单实例(加法计算器)

本人初学GUI,针对网上版本的混乱,学得一头雾水,特重新整理如下,供大家参考。 1.首先我们新建一个GUI文件:如下图所示; 选择Blank GUI(Default),点击OK。 2.进入GUI开发环境以后添加3个编辑文本框(Edit Text),2个静态文本框(Static Text),和一个Push Button按钮,布置如下图所示; (1)第一个“Edit Text 1”的用来存储第一个加数,我们将“string”改为“0”,“tag”改为“input1” (2)第二个“Edit Text 2”的用来存储第二个加数,我们将“string”改为“0”,“tag”改为“input2” (3)第三个“Edit Text 3”的“string”改为“0”,“tag”为“answer” (4)修改Pushbutton按钮的属性,“string”改为“Add”,“tag”改为“add” (5)另外2个Static文本就是的“string”修改为“+”“=” (6)点击“保存”,名字任意取,自动弹出M文件(我的是7.0版本,不知其他版本会不会如此)。 Edit Text 1 Edit Text 2 Edit Text 3 Push Button

3.我们先为第一个Edit Text文本框添加代码,即读取第一个加数; 点击上图所示红色方框,选择input1_Callback,光标便立刻移到下面这段代码(程序自动生成)的位置。 function input1_Callback(hObject, eventdata, handles) % hObject handle to input1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDA TA) % Hints: get(hObject,’String’) returns contents of input1 as text % str2double(get(hObject,’String’)) returns contents of edit1 as a double 然后在上面这段代码的下面插入如下代码: %以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字,则现实空白内容input=str2num(get(hObject,'String'));%检查输入是否为空. 如果为空,则默认显示为0 if (isempty(input)) set(hObject,'String','0') end guidata(hObject,handles);%保存handles结构体,只要在handles结构体有改变时,才需要保存%guidata(hObject, handles);%这里由于handles没有改变,故这里其实没有必要,但是为了避免潜在的不必要麻烦,建议在所有Callback都添加该命令。 这段代码使得输入被严格限制,我们不能试图输入一个非数字。 4. 为input2_Callback添加同样一段代码 input=str2num(get(hObject,'String'));%检查输入是否为空. 如果为空,则默认显示为0 if (isempty(input)) set(hObject,'String','0') end guidata(hObject,handles); 5. 现在我们为计算按钮“add”添加代码来实现把数据1(input1)和数据2(input2)相加的目的。 用3中同样的方法在m文件中找到add_Callback代码段,如下; function add_Callback(hObject, eventdata, handles) % hObject handle to add (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

matlab gui教程

什么就是GUI呢? GUI就是Graphical User Interface 图形用户界面的意思,象很多高级编程语言一样,Matlab也有图形用户界面开发环境,随着计算机技术的飞速发展,人与计算机的通信方式也发生的很大的变化,从原来的命令行通讯方式(例如很早的DOS系统)变化到了现在的图形界面下的交互方式,而现在绝大多数的应用程序都就是在图形化用户界面下运行的。 记得读书的时候,大学开学不久,学校很多同学就开始报考全国计算机等级考试了,当然我也就是其中的一分子,其中C语言就是大多数人选择的科目,当时在学C语言的时候,经常也会遇到人机交互的例子,譬如一个计算两个数相加的程序,运行程序后便切换到了Dos模式,然后在此模式下输入两个数,再回车,才能返回运算结果。当时就觉得很不方便,也不友好,后来才得知C语言就是面向过程的语言,就是非面向对象的语言(VC++,VB,Matlab等就是面向对象的)。那么下面我们就来瞧瞧Matlab就是如何简单、快速而友好地解决这类问题的吧。Matlab GUI编程教程(适用于初学者) 1.首先我们新建一个GUI文件: 如下图所示; 选择Blank GUI(Default) 2.进入GUI开发环境以后添加两个编辑文本框,6个静态文本框,与一个按钮,布置如下图所示;

布置好各控件以后,我们就可以来为这些控件编写程序来实现两数相加的功能了。3.我们先为数据1文本框添加代码; 点击上图所示红色方框,选择edit1_Callback,光标便立刻移到下面这段代码的位置。function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double 然后在上面这段代码的下面插入如下代码: %以字符串的形式来存储数据文本框1的内容、如果字符串不就是数字, 则现实空白内容 input = str2num(get(hObject,'String')); %检查输入就是否为空、如果为空,则默认显示为0 if(isempty(input)) set(hObject,'String','0')

相关文档
相关文档 最新文档