matlab界面设计

合集下载

第7章MATLAB图形界面设计

第7章MATLAB图形界面设计

静态文本框(Static Texts):仅用于显示单行的说明文字; ⑥ 静态文本框 滚动条(Slider): 可输入指定范围的数量值; ⑦ 滚动条 : 边框(Frames):在图形窗口圈出一块区域; ⑧ 边框 : ⑨ 列表框 列表框(List Boxes):在其中定义一系列可供选择的字符 : 串; ⑩ 弹出式菜单(Popup Menus): 让用户从一列菜单项中选 弹出式菜单 : 择一项作为参数输入; 此外还有坐标轴(Axes), 用于显示图形和图象。
回调函数 在M文本编辑器中打开m文件,可以看到自动生成的 回调函数,该函数的命名利用对象句柄进行区分, 没有任何执行语句。 回调函数:Tag_Callback(hObject, eventdata, handles), 通过加入自己的处理语句,可以实现所需功能。 其中hObject是控件的句柄;eventdata是备用参数, 目前没有定义;handles是用户数据,本身是一个结 构数组,存放了当前窗口的所有对象的句柄,包括 图形窗本身、所有控件和菜单的句柄。并且可以增 加一些域用来传递用户数据。 利用guidata( H, handles )可以更新 H 的用户数据。
空白界面 有控件的模板界面 有轴对象和菜单的模板界面 标准询问窗口
7.1.2 GUI界面的创建 用户创建 创建新的GUI,也可打开 打开已有的GUI。创建 创建 打开 界面时还可在模板基础上进行,在选择GUI模板 时,启动界面右侧提供了预览。
以“GUI with axes and menu”模板创建的 模板创建的GUI初始界面。 初始界面。 模板创建的 初始界面
菜单设计的编辑窗口
菜单效果图
菜单编辑器(Menu Editor) 菜单编辑器 利用菜单编辑器可创建、设置、修改下拉式菜单和快捷菜单。 选择 Tools 菜单的 Menu Editor...子菜单,可打开菜单编辑器。

MATLAB学习笔记(十一)——MATLAB图形用户界面设计

MATLAB学习笔记(十一)——MATLAB图形用户界面设计

MATLAB学习笔记(⼗⼀)——MATLAB图形⽤户界⾯设计(⼀)菜单设计⼀、建⽴⽤户菜单1、概况:⽤户菜单⼀般含有⼀级菜单和⼆级菜单,乃⾄多级菜单。

每⼀级菜单⼜包含多个菜单项。

建⽴菜单可以使⽤uimenu函数。

2、uimenu函数调⽤:%建⽴⼀级菜单的函数调⽤:⼀级菜单句柄=uimenu(图形窗⼝句柄,属性名1,属性值1,属性名2,属性值2,……);%建⽴⼀级菜单需给出图形窗⼝的句柄值。

%如果省略句柄值,MATLAB就在当前图形窗⼝中建⽴这个菜单项。

%如果当前没有图形窗⼝,则⾃动打开⼀个图形窗⼝。

%建⽴⼦菜单项的函数调⽤:⼦菜单项句柄=uimenu(⼀级菜单项句柄,属性名1,属性值1,属性名2,属性值2,……);⼆、菜单对象的常⽤属性:1、Label属性:取值是字符串,⽤于定义菜单项的名字。

可以在字符串中加⼊&字符,这时在菜单项名字上,跟随&字符有⼀条下划线,&字符本⾝不出现在菜单项中。

对于这种有带下划线的菜单,可以⽤Alt键加该字符键来激活相应的菜单项。

2、Accelerator属性:取值是任何字母,⽤于定义菜单项的快捷键。

3、Callback属性:可以是某个M⽂件名或者⼀组MATLAB命令。

即该命令被选中后,MATLAB会⾃动调⽤此回调函数进⾏相应。

4、Checked属性:取值是on或者off(缺省值),该属性为菜单项定义⼀个指⽰标记,可以⽤这个特性指明菜单项是否被选中。

5、Enable属性:取值是on(缺省值)或者off,这个属性控制菜单项的可选择性。

如果是off,则此时菜单项不可⽤,呈现灰⾊。

6、Position属性:取值是数值,定义⼀级菜单项在菜单条上的相对位置或者紫菜单项⼦菜单组内的相对位置。

7、Separator属性:取值是on或者off(缺省值)。

如果该属性为on,则在该菜单项上⽅添加⼀条分隔线,可以⽤来分隔同⼀菜单内的不同的功能。

⼀个demo:screen=get(0,'ScreenSize');W=screen(3);H=screen(4);figure('Color',[1,1,1],'Position',[0.2*H,0.2*H,0.5*W,0.3*H],'Name','图形演⽰系统','NumberTitle','off','MenuBar','none');%定义plot菜单项hplot=uimenu(gcf,'Label','&Plot');uimenu(hplot,'Label','Sine Wave','Callback',['t=-pi:pi/20:pi;','plot(t,sin(t));','set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');','set(hbon,''Enable'',''on'');','set(hboff,''Enab;e'',''on'');']); uimenu(hplot,'Label','Cosine Wave','Callback',['t=-pi:pi/20:pi;','plot(t,cos(t));','set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');','set(hbon,''Enable'',''on'');','set(hboff,''Enab;e'',''on'');']); %定义Option菜单项hoption=uimenu(gcf,'Label','&Option');hgon=uimenu(hoption,'Label','&Grid on','Callback','grid on','Enable','off');hgoff=uimenu(hoption,'Label','&Grid off','Callback','grid off','Enable','off');hbon=uimenu(hoption,'Label','&Box on','separator','on','Callback','box on','Enable','off');hboff=uimenu(hoption,'Label','&Box off','separator','off','Callback','box off','Enable','off');hwincor=uimenu(hoption,'Label','&Window Color','Separator','on');%定义window coloruimenu(hwincor,'Label','&Red','Accelerator','r','Callback','set(gcf,''Color'',''r'');');uimenu(hwincor,'Label','&Blue','Accelerator','b','Callback','set(gcf,''Color'',''b'');');uimenu(hwincor,'Label','&Yellow','Accelerator','y','Callback','set(gcf,''Color'',''y'');');uimenu(hwincor,'Label','&White','Accelerator','w','Callback','set(gcf,''Color'',''w'');');%定义Quit菜单项uimenu(gcf,'Label','&Quit','Callback','close(gcf)');三、快捷菜单1、概念快捷菜单是⽤⿏标右键单击某对象时在屏幕弹出的菜单。

matlabGUI人机用户界面设计[6]

matlabGUI人机用户界面设计[6]
图7-16 放置图形顾客界面旳控件
图7-18 对齐工具对话框
在界面之中还需要创建菜单,创建菜单能够经过菜单编辑器完毕。单击工具栏上旳菜单编辑器按钮,能够打开菜单编辑器对话框,在对话框中单击创建新菜单按钮,则能够创建新旳菜单,设置菜单属性如图7-20所示。
以空白界面类型为例,单击“OK”按钮,这时MATLAB将开启GUIDE旳图形界面,如图所示。
图 具有空白界面旳GUIDE图形界面
在GUIDE界面旳左侧为MATLAB旳控件面板,控件面板包括了能够在画布上绘制旳图形控件: (Push Button)、单项选择按钮(Toggle Button)、单项选择框(Radio Button)、复选框(Checkbox)、文本框(Edit Text)、静态文本框(Static Text)、滚动条(Slider)、组别框(Frame)、列表框(Listbox)、下拉框(Popup Menu)和坐标轴(Axes)。
2.1 GUIDE工具入门
使用图形句柄创建GUI旳过程繁琐,而且在程序编写好之前,顾客图形界面是不可见旳。所觉得了便于创建图形顾客界面,MATLAB提供了一种开发环境,能够帮助顾客创建图形顾客界面,这就是GUIDE——Graphic User Interface Development Environment。 在MATLAB中开启GUIDE旳措施: >>guide或者经过“Start”菜单项选择择“MATLAB”下旳“GUIDE”命令。
这时,将直接开启GUIDE Quick Start窗体,在这个窗体中,能够初步选择图形顾客界面旳类型,如图所示。
图 GUIDE旳迅速开启界面
在迅速开启界面中,能够选择四种类型旳新建界面:* 空白界面(Black GUI)。* 具有图形控件旳界面(GUI With Uicontrols)。* 具有菜单和坐标轴旳界面(GUI With Axes and Menu)。* 模式对话框(Modal Question Dialog)。

MATLAB用户界面设计说明

MATLAB用户界面设计说明

滚动条’slider’ 图示某个范围。
按钮’pushbutton’ 其上的字符说明其作用。
切换按钮’toggle button’ 两状态按钮,单击改变其状态。
收音机按钮’radiobutton’ 一组选项,其中只能有一个被选中。
复选框’check button’ 一组选项,可以选择多项。
例:
h=warndlg({'error:','code1111.'},'Warning')
h=errordlg({'error:','code 1111.'},'Error')
5. 帮助信息对话框 与警告、错误信息对话框基本一致,仅仅是图标 的不同。
例:
h=helpdlg({'帮助信息:','帮助信息对话框和警告 错误对话框基本一致,只是图标不同!'},'帮助')
2.控件的常用属性
Units与 position属性 意义同上,这里的位置是相对该窗口的左下角;
String属性 标注在控件上,用来说明或提示;
Callback属性 实现该控件的实质性功能;
Enable属性 该控件的使能状态‘on’或‘off’ tag 属性
同上
例1:
h_main=figure(‘name’,‘a demo of gui design’,‘menubar’,‘none’,… 'numbertitle','off','position',[100 100 300 100]);
6.通用信息框 msgbox(‘显示信息’,’标题’,’图标’) 图标包括:Error、Help、Warn以及 Custom,如果缺省则为None。

MATLAB用户界面设计

MATLAB用户界面设计

MATLAB用户界面设计MATLAB是一款功能强大的数学计算软件,用于科学计算和工程计算。

它具有丰富的数值计算和数据可视化功能,可以进行数据分析、图像处理、信号处理、优化、建模和仿真等任务。

MATLAB提供了一个灵活的用户界面设计工具,允许用户根据自己的需求自定义和优化界面。

MATLAB的用户界面设计工具包括命令行界面和图形用户界面(GUI)。

命令行界面是MATLAB最基本的界面,用户可以在此界面下输入和执行MATLAB命令。

命令行界面简单直接,适合对MATLAB语言熟悉的高级用户。

图形用户界面(GUI)提供了更友好的交互方式,允许用户通过鼠标操作进行数据输入和操作,并以图形化方式显示计算结果。

在MATLAB中,用户可以使用GUIDE(GUI Development Environment)来创建和设计GUI界面。

GUIDE是MATLAB自带的可视化界面设计工具,用户可以通过简单的拖拽和调整控件的方式来设计界面布局和控件的行为。

在设计MATLAB用户界面时,需要考虑以下几个方面:2.控件选择:根据功能需求选择合适的控件。

MATLAB提供了丰富的控件库,包括按钮、复选框、单选框、列表框、下拉框、滑块等,用户可以根据需要选择合适的控件来实现特定功能。

3.控件布局和大小调整:要保证界面控件的布局合理,避免控件之间的重叠或覆盖。

可以使用布局管理器来自动设置控件的位置和大小,以适应不同的屏幕分辨率和窗口大小。

4.事件处理和回调函数:MATLAB的GUI界面可以通过事件处理和回调函数来响应用户的操作。

用户可以通过编写自定义的回调函数来实现特定的操作和功能。

在设计界面时,需要考虑各种用户操作的响应和交互方式,以提高用户体验和界面的交互性。

5.数据输入和输出:MATLAB的GUI界面可以通过控件来实现数据的输入和输出。

用户可以使用文本框、列表框等控件来输入数据,使用文本框、图表等控件来显示计算结果。

在设计界面时,要考虑数据输入的方式和检验输入数据的有效性,以及计算结果的可视化方式和数据呈现的方式。

第8章 MATLAB图形用户界面设计

第8章  MATLAB图形用户界面设计

8.1.2 菜单对象常用属性 菜单对象具有Children,Parent,Tag,Type, 菜单对象具有 , , , , UserData,Visible等公共属性,除公共属性外,还有一些 等公共属性, , 等公共属性 除公共属性外, 常用的特殊属性. 常用的特殊属性. 建立图8.1所示的图形演示系统菜单 所示的图形演示系统菜单. 例8.1 建立图 所示的图形演示系统菜单.菜单条中含有 3个菜单项 Plot,Option和Quit.Plot中有 3个菜单项:Plot,Option和Quit.Plot中有Sine Wave和 个菜单项: 中有Sine Wave和 Cosine Wave两个子菜单项,分别控制在本图形窗口画出 两个子菜单项, 两个子菜单项 正弦和余弦曲线. 菜单项的内容如图11-1所示,其 所示, 正弦和余弦曲线.Option菜单项的内容如图 菜单项的内容如图 所示 中Grid on和Grid off控制给坐标轴加网格线,Box on和 和 控制给坐标轴加网格线, 和 控制给坐标轴加网格线 Box off控制给坐标轴加边框,而且这 项只有在画有曲线 控制给坐标轴加边框, 控制给坐标轴加边框 而且这4项只有在画有曲线 时才是可选的. 控制图形窗口背景颜色. 时才是可选的.Window Color控制图形窗口背景颜色. 控制图形窗口背景颜色 Quit控制是否退出系统. 控制是否退出系统. 控制是否退出系统
第8章 MATLAB图形用户界面设计 章 图形用户界面设计 8.1 菜单设计 8.2 对话框设计 8.3 可视化图形用户界面设计
8.1 菜单设计 8.1.1 建立用户菜单 要建立用户菜单可用uimenu函数,因其调用方法不同, 函数, 要建立用户菜单可用 函数 因其调用方法不同, 该函数可以用于建立一级菜单项和子菜单项. 该函数可以用于建立一级菜单项和子菜单项. 建立一级菜单项的函数调用格式为: 建立一级菜单项的函数调用格式为: 一级菜单项句柄=uimenu(图形窗口句柄,属性名 ,属 图形窗口句柄, 一级菜单项句柄 图形窗口句柄 属性名1, 性值1,属性名2,属性值2, 性值 ,属性名 ,属性值 ,…) 建立子菜单项的函数调用格式为: 建立子菜单项的函数调用格式为: 子菜单项句柄=uimenu(一级菜单项句柄,属性名 ,属 一级菜单项句柄, 子菜单项句柄 一级菜单项句柄 属性名1, 性值1,属性名2,属性值2,…) 性值 ,属性名 ,属性值 ,

MATLAB的图形用户界面设计

MATLAB的图形用户界面设计
(3) UserData属性
UserData属性的取值是一个矩阵,缺省值为空矩阵,用户可以在 这个属性中保存与该菜单对象相关的重要数据或信息,借此可以达 到传递数据或信息的目的。可以用set和get函数访问该属性。
二、菜单设计
【例2】 建立一个菜单系统。
菜单条中含有File和Help两个菜单项。如果选择File中的New 选项,则将显示New Item字样,如果选择File中的Open选项, 则将显示出Open Item字样。File中的Save菜单项初始时处于禁 选状态,在选择Help选项之后将此菜单项恢复成可选状态,如 果选择File中的Save选项,则将出现一个新的菜单(三级菜单), 其中共有两个子菜单项Text file和Graphics file,如果选择第1项, 则将变量k1和k2分别赋为0和1,然后调用file01.m文件来进行 相应的处理(该文件需要另行编写),如果选择第2项,则将变 量k1和k2分别赋为1和0,然后调用file10.m文件来进行相应的 处理(该文件也需要另行编写)。如果选择File中的Save As选项, 则将显示Save As Item字样。如果选择File中的Exit选项,则将 关闭当前窗口。如果选择Help中About …选项,则将显示Help Item字样,并将Save•菜单设置成可选状态。
第八讲 MATLAB图形用 户界面设计
所谓图形用户界面是指由窗口、菜单、对 话框等各种图形对象组成的用户界面。在 这种用户界面下,用户的操作是通过“选 择”各种图形对象来实现的。
一、图形窗口的控制
一、图形窗口的控制
1.建立图形窗口 要建立一个图形窗口,有两种方法:
(1)菜单操作:在MATLAB命令窗口选择File菜单中 的New命令,再选取Figure子菜单,这样将建立一个标准 的MATLAB图形窗口;

matlabgui界面设计课程设计

matlabgui界面设计课程设计

matlab gui界面设计 课程设计一、课程目标知识目标:1. 理解MATLAB GUI界面设计的基本概念,掌握相关函数和工具的使用;2. 学习MATLAB GUI界面设计的原则和方法,能够独立设计并实现简单的GUI界面;3. 掌握在GUI界面中添加控件、布局和事件处理的方法,实现人机交互功能。

技能目标:1. 培养学生运用MATLAB进行GUI界面设计的能力,提高编程实践技能;2. 培养学生分析问题、解决问题的能力,学会将实际问题转化为GUI界面设计需求;3. 培养学生团队合作和沟通能力,能够在团队中协同完成界面设计任务。

情感态度价值观目标:1. 激发学生对计算机编程和界面设计的兴趣,培养主动学习和积极探索的精神;2. 培养学生严谨、细致的工作态度,注重界面设计的实用性和美观性;3. 增强学生的创新意识,鼓励尝试新方法,培养解决实际问题的自信心。

课程性质:本课程为实践性较强的选修课程,旨在让学生在掌握MATLAB编程基础的前提下,学会GUI界面设计的方法和应用。

学生特点:学生具备一定的MATLAB编程基础,对计算机编程和界面设计有一定兴趣,希望提高自己的实践能力和创新能力。

教学要求:注重理论与实践相结合,鼓励学生动手实践,关注学生个体差异,提供有针对性的指导,确保学生能够达到课程目标。

通过课程学习,使学生能够将所学知识应用于实际项目中,提高解决实际问题的能力。

二、教学内容1. MATLAB GUI设计基础:- 界面设计原理与概念- GUI工具箱的介绍与使用- 控件的基本属性、方法及其应用2. GUI界面布局与设计:- 界面布局原则与技巧- 常用布局控件的设置与调整- 界面美化与优化方法3. 事件处理与交互功能实现:- 事件处理机制与编程- 常用事件类型及其应用- GUI界面中函数的编写与调用4. 实例分析与动手实践:- 分析典型GUI界面设计案例- 指导学生动手设计简单的GUI界面- 针对不同需求,实现相应的交互功能5. 课程总结与拓展:- 总结MATLAB GUI界面设计的基本方法和技巧- 探讨GUI界面设计在实际应用中的拓展- 鼓励学生进行创新性设计与实践教学内容依据教材章节进行组织,注重理论与实践相结合,循序渐进地引导学生掌握GUI界面设计的相关知识。

MATLAB-GUI图形用户界面设计分析

MATLAB-GUI图形用户界面设计分析

1) 双击设计工作区的空白局部,翻开整个图形窗的属性框。
MuUnnuiBtsa或r: FnoonnteUnits可选择%:图i形nc窗he是s(英否寸使)用,标ce准nt菜im单eters
(厘N米am),e: cnaocrumlaatloizred%(按图比形例窗缩名放称),points(点阵), pixels
翻开GUI设计工作台的命令:
guide
%翻开设计工作台启动界面
guide file %在工作台中翻开文件名为file的用户界面
菜单项[ File:New->GUI ] %翻开设计工作台启动界面
留意:guide命令中文件名不区分大小写。
翻开的GUI启动界面供给新建界面( Create New GUI )或 翻开已有界面文件( Open Existing GUI )的属性页。新建界面 可以选择空白界面、包含有控件的模板界面、包含有轴对象
riFghotn。tUnits: points
%字体大小的度量单位
Ho控riz件on句ta柄lATliaggn有m默en认t: 值Ce,nt建er议修%改对为齐带方有式具体含义的字 符S串tr,ing以: E增x加pr程ess序io可n 读性和%便待利显回示调的函字数符调用。
Tag: text1
%该静态文本框的句柄handles.text1
留意: 1) 先完成大致界面布局,再编写功能程序。 2) 界面风格要全都,且符合使用习惯。例如,一般习惯图形
区在上面或左面,把握区在下面或右面等等。
2023/10/12
3
GUI图形用户界面
例如,以本次试验的内容“计算器”为例。
1) 功能分析:完成数字的四则运算,以及一局部常用的科学 计算:sin, cos, log等等。

40个matlab界面设计

40个matlab界面设计

实例72:图像分析(1)h0=figure('toolbar','none',...'position',[198 56 350 468],...'name','实例72');h1=axes('parent',h0,...'position',[0.25 0.45 0.5 0.5],...'visible','off');I=imread('rice.tif');imshow(I)k=0;b1=uicontrol('parent',h0,...'units','points',...'tag','b1',...'style','pushbutton',...'string','图像轮廓图',...'backgroundcolor',[0.75 0.75 0.75],...'position',[20 100 60 20],...'callback',[...'cla,',...'k=1;,',...'I=imread(''rice.tif'');,',...'imcontour(I)']);b2=uicontrol('parent',h0,...'units','points',...'tag','b2',...'style','pushbutton',...'string','SOBEL边界图',...'backgroundcolor',[0.75 0.75 0.75],...'position',[100 100 60 20],...'callback',[...'cla,',...'k=2;,',...'I=imread(''rice.tif'');,',...'BW=edge(I,''sobel'');,',...'imshow(BW)']);b3=uicontrol('parent',h0,...'units','points',...'tag','b3',...'style','pushbutton',...'string','CANNY边界图',...'backgroundcolor',[0.75 0.75 0.75],...'position',[180 100 60 20],...'callback',[...'cla,',...'k=3;,',...'I=imread(''rice.tif'');,',...'BW=edge(I,''canny'');,',...'imshow(BW)']);b4=uicontrol('parent',h0,...'units','points',...'tag','b4',...'style','pushbutton',...'string','灰度调整',...'backgroundcolor',[0.75 0.75 0.75],...'position',[20 50 60 20],...'callback',[...'cla,',...'k=4;,',...'I=imread(''rice.tif'');,',...'J=imadjust(I,[0.15 0.9],[0 1]);,',...'imshow(J,64)']);b5=uicontrol('parent',h0,...'units','points',...'tag','b5',...'style','pushbutton',...'string','图像柱状图',...'backgroundcolor',[0.75 0.75 0.75],...'position',[180 50 60 20],...'callback',[...'if k==0,',...'figure,',...'imhist(I,64),',...'end,',...'if k==1,',...'imhist(I,64),',...'end,',...'if k==2,',...'imhist(BW,64),',...'end,',...'if k==3,',...'imhist(BW,64),',...'end,',...'if k==4,',...'imhist(J),',...'end']);b6=uicontrol('parent',h0,...'units','points',...'tag','b6',...'style','pushbutton',...'string','关闭',...'backgroundcolor',[0.75 0.75 0.75],...'position',[100 50 60 20],...'callback','close');实例73:过滤图像h0=figure('toolbar','none',...'position',[198 56 350 468],...'name','实例73');h1=axes('parent',h0,...'position',[0.25 0.45 0.5 0.5],...'visible','off');I=imread('eight.tif');imshow(I)u1=uimenu('parent',h0,...'tag','u1',...'label','添加噪声',...'backgroundcolor',[0.75 0.75 0.75]);u11=uimenu('parent',u1,...'tag','u11',...'label','SALT&PEPPER噪声',...'backgroundcolor',[0.75 0.75 0.75],...'callback',[...'set(u11,''checked'',''on'');,',...'set(u12,''checked'',''off'');,',...'cla,',...'I=imnoise(I,''salt & pepper'',0.02);,',...'imshow(I)']);u12=uimenu('parent',u1,...'tag','u12',...'label','GAUSSIAN噪声',...'backgroundcolor',[0.75 0.75 0.75],...'callback',[...'set(u12,''checked'',''on'');,',...'set(u11,''checked'',''off'');,',...'cla,',...'I=imnoise(I,''gaussian'',0,0.005);,',...'imshow(I)']);b1=uicontrol('parent',h0,...'units','points',...'tag','b1',...'style','pushbutton',...'string','均平过滤',...'backgroundcolor',[0.75 0.75 0.75],...'position',[30 100 50 20],...'callback',[...'cla,',...'J=filter2(fspecial(''average'',3),I)/255;,',...'imshow(J)']);b2=uicontrol('parent',h0,...'units','points',...'tag','b2',...'style','pushbutton',...'string','中值过滤',...'backgroundcolor',[0.75 0.75 0.75],...'position',[100 100 50 20],...'callback',[...'cla,',...'J=medfilt2(I,[3 3]);,',...'imshow(J)']);b3=uicontrol('parent',h0,...'units','points',...'tag','b3',...'style','pushbutton',...'string','自适应过滤',...'backgroundcolor',[0.75 0.75 0.75],...'position',[170 100 50 20],...'callback',[...'cla,',...'J=wiener2(I,[5 5]);,',...'imshow(J)']);b4=uicontrol('parent',h0,...'units','points',...'tag','b4',...'style','pushbutton',...'string','关闭',...'fontsize',15,...'backgroundcolor',[0.75 0.75 0.75],...'position',[90 50 70 30],...'callback','close');实例74:图像的区域处理h0=figure('toolbar','none',...'position',[198 56 350 468],...'name','实例74');h1=axes('parent',h0,...'position',[0.25 0.45 0.5 0.5],...'visible','off');I=imread('trees.tif');imshow(I)b1=uicontrol('parent',h0,...'units','points',...'tag','b1',...'style','pushbutton',...'string','区域过滤一',...'backgroundcolor',[0.75 0.75 0.75],...'position',[30 100 50 20],...'callback',[...'cla,',...'I=imread(''trees.tif'');,',...'imshow(I),',...'BW=roipoly;,',...'h=fspecial(''unsharp'');,',...'I2=roifilt2(h,I,BW);,',...'imshow(I2)']);b2=uicontrol('parent',h0,...'units','points',...'tag','b2',...'style','pushbutton',...'string','区域过滤二',...'backgroundcolor',[0.75 0.75 0.75],...'position',[100 100 50 20],...'callback',[...'cla,',...'BW=imread(''text.tif'');,',...'f=inline(''imadjust(x,[],[],0.01)'');,',...'I2=roifilt2(I,BW,f);,',...'imshow(I2)']);b3=uicontrol('parent',h0,...'units','points',...'tag','b3',...'style','pushbutton',...'string','区域填充',...'backgroundcolor',[0.75 0.75 0.75],...'position',[170 100 50 20],...'callback',[...'load trees,',...'I=ind2gray(X,map);,',...'imshow(I),',...'I2=roifill;,',...'imshow(I2)']);b4=uicontrol('parent',h0,...'units','points',...'tag','b4',...'style','pushbutton',...'string','关闭',...'backgroundcolor',[0.75 0.75 0.75],...'position',[90 50 70 30],...'callback','close');实例75:图像的颜色处置h0=figure('toolbar','none',...'position',[198 56 350 468],...'name','实例75');h1=axes('parent',h0,...'position',[0.12 0.45 0.75 0.5],...'visible','off');I=imread('flowers.tif');imshow(I)b1=uicontrol('parent',h0,...'units','points',...'tag','b1',...'style','pushbutton',...'string','减少颜色',...'backgroundcolor',[0.75 0.75 0.75],...'position',[30 100 50 20],...'callback',[...'cla,',...'[X,map]=imread(''flowers.tif'');,',...'[Y,map2]=imapprox(X,map,64);,',...'image(Y),',...'colormap(map2)']);b2=uicontrol('parent',h0,...'units','points',...'tag','b2',...'style','pushbutton',...'string','颜色抖动',...'backgroundcolor',[0.75 0.75 0.75],...'position',[100 100 50 20],...'cla,',...'I=imread(''flowers.tif'');,',...'[X,map]=rgb2ind(I,128,''nodither'');,',...'imshow(X)']);b3=uicontrol('parent',h0,...'units','points',...'tag','b3',...'style','pushbutton',...'string','颜色转换一',...'backgroundcolor',[0.75 0.75 0.75],...'position',[170 100 50 20],...'callback',[...'cla,',...'I=imread(''flowers.tif'');,',...'Y=rgb2ntsc(I);,',...'J=Y(:,:,1);,',...'imshow(J)']);b4=uicontrol('parent',h0,...'units','points',...'tag','b4',...'style','pushbutton',...'string','关闭',...'backgroundcolor',[0.75 0.75 0.75],...'position',[170 50 50 20],...'callback','close');b5=uicontrol('parent',h0,...'units','points',...'tag','b5',...'style','pushbutton',...'string','颜色转换三',...'backgroundcolor',[0.75 0.75 0.75],...'position',[100 50 50 20],...'callback',[...'cla,',...'I=imread(''flowers.tif'');,',...'J=rgb2ycbcr(I);,',...'imshow(J)']);b6=uicontrol('parent',h0,...'units','points',...'tag','b6',...'style','pushbutton',...'string','颜色转换二',...'backgroundcolor',[0.75 0.75 0.75],...'position',[30 50 50 20],...'callback',[...'cla,',...'I=imread(''flowers.tif'');,',...'J=rgb2hsv(I);,',...'imshow(J)']);实例76:交换显示图像h0=figure('toolbar','none',...'position',[198 56 500 500],...'name','实例76');h1=axes('parent',h0,...'position',[0.15 0.5 0.7 0.5],...'visible','off');u1=uimenu('parent',h0,...'label','加载图像',...'backgroundcolor',[0.753 0.753 0.753],...'tag','u1',...'callback',[...'[X,map]=imread(''800.jpg'',''jpg'');,',...'Y=imresize(X,2);,',...'image(Y),',...'colormap(map),',...'axis image,',...'camva(camva/2.5),',...'disp(''单击鼠标左键点取需要的点''),',...'disp(''单击鼠标右键确定最后一个点''),',...'while 1,',...'[x,y]=ginput(1);,',...'if ~strcmp(get(gcf,''selectiontype''),''normal''),',...'break,',...'end,',...'ct=camtarget;,',...'dx=x-ct(1);,',...'dy=y-ct(2);,',...'camdolly(dx,dy,ct(3),''movetarget'',''data''),',...'drawnow,',...'end']);u2=uimenu('parent',h0,...'label','关闭',...'backgroundcolor',[0.753 0.753 0.753],...'tag','u2',...'callback','close');实例77:矢量数据的显示h0=figure('toolbar','none',...'position',[198 56 450 468],...'name','实例77');h1=axes('parent',h0,...'position',[0.3 0.45 0.5 0.5],...'visible','off');load windb1huidiao=[...'cla,',...'xmin = min(x(:));,',...'xmax = max(x(:));,',...'ymax = max(y(:));,',...'zmin = min(z(:));,',...'wind_speed = sqrt(u.^2 + v.^2 + w.^2);,',...'hsurfaces = slice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin);,',...'set(hsurfaces,''FaceColor'',''interp'',''EdgeColor'',''none''),',...'hcont = contourslice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin);,',...'set(hcont,''EdgeColor'',[.7,.7,.7],''LineWidth'',.5),',...'[sx,sy,sz] = meshgrid(80,20:10:50,0:5:15);,',...'hlines = streamline(x,y,z,y,v,w,sx,sy,sz);,',...'set(hlines,''LineWidth'',2,''Color'',''r''),',...'view(3),',...'daspect([2,2,1]),',...'axis tight'];b2huidiao=[...'cla,',...'wind_speed = sqrt(u.^2 + v.^2 + w.^2);,',...'hiso = patch(isosurface(x,y,z,wind_speed,40));,',...'isonormals(x,y,z,wind_speed,hiso),',...'set(hiso,''FaceColor'',''red'',''EdgeColor'',''none'');,',...'hcap = patch(isocaps(x,y,z,wind_speed,40),''FaceColor'',''interp'',''EdgeColor'',''none'');,',...'colormap hsv,',...'daspect([1,1,1]);,',...'[f verts] = reducepatch(isosurface(x,y,z,wind_speed,30),0.07);,',...'h1 = coneplot(x,y,z,u,v,w,verts(:,1),verts(:,2),verts(:,3),3);,',...'set(h1,''FaceColor'',''blue'',''EdgeColor'',''none'');,',...'xrange = linspace(min(x(:)),max(x(:)),10);,',...'yrange = linspace(min(y(:)),max(y(:)),10);,',...'zrange = 3:4:15;,',...'[cx,cy,cz] = meshgrid(xrange,yrange,zrange);,',...'h2 = coneplot(x,y,z,u,v,w,cx,cy,cz,2);,',...'set(h2,''FaceColor'',''green'',''EdgeColor'',''none'');,',...'axis tight,',...'box on,',...'camproj perspective,',...'camzoom(1.25),',...'view(65,45),',...'camlight(-45,45),',...'lighting phong,',...'set(hcap,''AmbientStrength'',.6)']; b1=uicontrol('parent',h0,...'style','pushbutton',...'units','points',...'tag','b1',...'backgroundcolor',[0.75 0.75 0.75],...'string','可视化',...'position',[50 100 60 20],...'callback',b1huidiao);b2=uicontrol('parent',h0,...'style','pushbutton',...'units','points',...'tag','b2',...'backgroundcolor',[0.75 0.75 0.75],...'string','锥形图',...'position',[200 100 60 20],...'callback',b2huidiao);b3=uicontrol('parent',h0,...'style','pushbutton',...'units','points',...'tag','b3',...'backgroundcolor',[0.75 0.75 0.75],...'string','关闭',...'position',[125 60 60 20],...'callback','close');实例78:图像分析(2)h0=figure('toolbar','none',...'position',[198 56 350 468],...'name','实例78');h1=axes('parent',h0,...'position',[0.25 0.45 0.5 0.5],...'visible','off');load imdemos flowerimshow(flower)colormap(copper)n=size(X,1);b1=uicontrol('parent',h0,...'units','points',...'tag','b1',...'style','pushbutton',...'string','轮廓图',...'backgroundcolor',[0.75 0.75 0.75],...'position',[30 100 50 20],...'callback',[...'cla,',...'[X,map]=imread(''flowers.tif'');,',...'X=double(flower);,',...'X=(0.25/256)*X;,',...'C=copper(35);,',...'set(gca,''colororder'',C(21:35,:),''box'',''on'');,',...'imcontour(X,3);,',...'axis([1 n 1 n]),',...'axis(''ij''),',...'axis(''square'')']);b2=uicontrol('parent',h0,...'units','points',...'tag','b2',...'style','pushbutton',...'string','伪彩图',...'backgroundcolor',[0.75 0.75 0.75],...'position',[100 100 50 20],...'callback',[...'cla,',...'D=-del2(X);,',...'pcolor(D),',...'axis([1 n 1 n]),',...'axis(''ij''),',...'shading(''flat'')']);b3=uicontrol('parent',h0,...'units','points',...'tag','b3',...'style','pushbutton',...'string','3D表面图',...'backgroundcolor',[0.75 0.75 0.75],...'position',[170 100 50 20],...'callback',[...'cla,',...'D=-del2(X);,',...'surf(X,D),',...'colormap(copper),',...'axis([1 n 1 n 0 1]),',...'axis(''ij''),',...'shading(''flat''),',...'view(-20,75);']);b4=uicontrol('parent',h0,...'units','points',...'tag','b4',...'style','pushbutton',...'string','关闭',...'backgroundcolor',[0.75 0.75 0.75],...'position',[80 50 80 30],...'callback','close');实例79:图像逻辑操作h0=figure('toolbar','none',...'position',[198 56 350 468],...'name','实例79');h1=axes('parent',h0,...'position',[0.25 0.45 0.5 0.5],...'visible','off');load imdemos bacteriaimshow(bacteria)k1=~(bacteria>100);k2=filter2(fspecial('laplacian'),bacteria); k3=(k2>-4)&k1;k4=erode(k1)&(k3==0);[r,c]=find(k4);k5=bwselect(k1,c,r);b1=uicontrol('parent',h0,...'units','points',...'tag','b1',...'style','pushbutton',...'string','二值分割图',...'backgroundcolor',[0.75 0.75 0.75],...'position',[30 110 50 20],...'callback',[...'cla,',...'imshow(k1)']);b2=uicontrol('parent',h0,...'units','points',...'tag','b2',...'style','pushbutton',...'string','滤波结果图',...'backgroundcolor',[0.75 0.75 0.75],...'position',[100 110 50 20],...'callback',[...'cla,',...'imshow(k2)']);b3=uicontrol('parent',h0,...'units','points',...'tag','b3',...'style','pushbutton',...'string','阈值化图',...'backgroundcolor',[0.75 0.75 0.75],...'position',[170 110 50 20],...'callback',[...'cla,',...'imshow(k3)']);b4=uicontrol('parent',h0,...'units','points',...'tag','b4',...'style','pushbutton',...'string','目标的核',...'backgroundcolor',[0.75 0.75 0.75],...'position',[30 60 50 20],...'callback',[...'cla,',...'imshow(k4)']);b5=uicontrol('parent',h0,...'units','points',...'tag','b5',...'style','pushbutton',...'string','目标分割图',...'backgroundcolor',[0.75 0.75 0.75],...'position',[100 60 50 20],...'callback',[...'cla,',...'imshow(k5)']);b6=uicontrol('parent',h0,...'units','points',...'tag','b6',...'style','pushbutton',...'string','关闭',...'backgroundcolor',[0.75 0.75 0.75],...'position',[170 60 50 20],...'callback','close');实例80:进度条的使用h0=figure('toolbar','none',...'position',[198 56 350 450],...'name','实例80');h1=axes('parent',h0,...'position',[0.25 0.45 0.6 0.5],...'visible','off');I=imread('flowers.tif');imshow(I)b1=uicontrol('parent',h0,...'units','points',...'tag','b1',...'style','pushbutton',...'string','转换',...'backgroundcolor',[0.75 0.75 0.75],...'position',[50 80 60 25],...'callback',[...'handlek=waitbar(0,''initializing......'');,',...'pause(0.5),',...'i=1;,',...'while i<=100,',...'waitbar(i/100,handlek,[num2str(i),''%finished''],handlek),',...'i=i+1;,',...'pause(0.05),',...'end,',...'pause(1.5),',...'cla,',...'delete(handlek),',...'Y=rgb2ntsc(I);,',...'J=Y(:,:,1);,',...'imshow(J)']);b2=uicontrol('parent',h0,...'units','points',...'tag','b2',...'style','pushbutton',...'string','关闭',...'backgroundcolor',[0.75 0.75 0.75],...'position',[150 80 60 25],...'callback','close');例81:MRI数据的显示load mriD = squeeze(D);h0=figure('toolbar','none',...'position',[198 56 450 468],...'name','实例81');h1=axes('parent',h0,...'position',[0.3 0.45 0.5 0.5],...'visible','off');image_num = 8;image(D(:,:,image_num))axis imagecolormap(map)x = xlim;y = ylim;b1=uicontrol('parent',h0,...'units','points',...'tag','b1',...'style','pushbutton',...'backgroundcolor',[0.75 0.75 0.75],...'position',[50 100 60 20],...'string','二维图',...'callback',[...'cla,',...'contourslice(D,[],[],image_num),',...'axis ij,',...'xlim(x),',...'ylim(y),',...'daspect([1,1,1]),',...'colormap(''default'')']);b2=uicontrol('parent',h0,...'units','points',...'tag','b2',...'style','pushbutton',...'backgroundcolor',[0.75 0.75 0.75],...'position',[250 100 60 20],...'string','三维图',...'callback',[...'cla,',...'phandles = contourslice(D,[],[],[1,12,19,27],8);,',...'view(3);,',...'axis tight,',...'set(phandles,''LineWidth'',2)']);b3=uicontrol('parent',h0,...'units','points',...'tag','b3',...'style','pushbutton',...'backgroundcolor',[0.75 0.75 0.75],...'position',[50 50 60 20],...'string','立体图',...'callback',[...'cla,',...'Ds = smooth3(D);,',...'hiso = patch(isosurface(Ds,5),''FaceColor'',[1,.75,.65],''EdgeColor'',''none'');,',...'hcap = patch(isocaps(D,5),''FaceColor'',''interp'',''EdgeColor'',''none'');,',...'colormap(map),',...'view(45,30),',...'axis tight,',...'daspect([1,1,.4]),',...'lightangle(45,30),',...'lighting phong,',...'isonormals(Ds,hiso),',...'set(hcap,''AmbientStrength'',.6),',...'set(hiso,''SpecularColorReflectance'',0,''SpecularExponent'',50)']);b4=uicontrol('parent',h0,...'units','points',...'tag','b4',...'style','pushbutton',...'backgroundcolor',[0.75 0.75 0.75],...'position',[250 50 60 20],...'string','关闭',...'callback','close');实例82:图像类型转换h0=figure('toolbar','none',...'position',[198 56 350 468],...'name','实例82');h1=axes('parent',h0,...'position',[0.2 0.45 0.5 0.5],...'visible','off');load earthclims = [10 60];b1=uicontrol('parent',h0,...'units','points',...'tag','b1',...'style','pushbutton',...'string','强度图像',...'position',[30 120 50 20],...'callback',[...'cla,',...'imagesc(X,clims),',...'colormap(gray)']);b2=uicontrol('parent',h0,...'units','points',...'tag','b2',...'style','pushbutton',...'string','索引图像',...'position',[100 120 50 20],...'callback',[...'cla,',...'image(X),',...'colormap(map),',...'axis image']);b3=uicontrol('parent',h0,...'units','points',...'tag','b3',...'style','pushbutton',...'string','真彩图像',...'position',[170 120 50 20],...'callback',[...'cla,',...'image(X),',...'axis image']);b4=uicontrol('parent',h0,...'units','points',...'tag','b4',...'style','pushbutton',...'string','关闭',...'position',[100 50 50 20],...'callback','close');实例83:特殊的图像显示技术h0=figure('toolbar','none',...'position',[198 56 350 468],...'name','实例83');h1=axes('parent',h0,...'position',[0.25 0.45 0.5 0.5],...'visible','off');b1=uicontrol('parent',h0,...'units','points',...'tag','b1',...'backgroundcolor',[0.75 0.75 0.75],...'style','pushbutton',...'string','颜色条',...'position',[30 120 50 20],...'callback',[...。

MATLAB界面设计报告-优秀篇

MATLAB界面设计报告-优秀篇

基于MATLAB的单色光的干涉和衍射实验GUI设计报告目录一、概述 (3)二、前期准备 (3)2.1干涉原理及程序 (3)2.2衍射原理及程序 (4)三、设计阶段 (5)3.1进入模块设计 (5)3.2实验界面设计 (5)3.3计算模块设计 (8)3.4绘图模块设计 (8)3.5清除模块设计 (8)3.6提示模块设计 (8)四、软件使用方法 (9)五、感想 (15)六、参考文献 (15)一、概述MATLAB是目前世界上最流行的、应用最广泛的工程计算和仿真软件,它将计算、可视化和编程等功能同时集于一个易于开发的环境。

MATLAB主要应用于数学计算、系统建模与仿真、数学分析与可视化、科学与工程绘图和用户界面设计等。

其中,用户界面设计中,GUI开发环境是MATLAB7.3为设计图形用户界面提供了一个集成与开发环境,且广泛用于实验模拟软件开发中。

此次我所设计的是一个较简洁、清晰的关于单色光干涉与衍射实验的软件。

其能完成特定条件下干涉条纹间距和衍射半角的计算,以及干涉条纹和衍射条纹的绘制。

二、前期准备2.1干涉原理及程序干涉原理图程序如下:ym=5*flag_lambda*flag_D/flag_a/1000000;xs=ym;n=101;ys=linspace(-ym,ym,n);for i=1:nr1=sqrt((ys(i)-(flag_a/1000)/2).^2+(flag_D)^2);r2=sqrt((ys(i)+(flag_a/1000)/2).^2+(flag_D)^2);phi=2*pi*(r2-r1)/(flag_lambda/1000000000);B(i,:)=4*cos(phi/2).^2;endN=255;Br=(B/4.0)*N;image(xs,ys,Br);title('干涉条纹')colormap(gray(N));2.2衍射原理及程序衍射原理图程序如下:ymax=3*flag_lambda*flag_D/flag_a/1000000; Ny=51;ys=linspace(-ymax,ymax,Ny);NP=51;yP=linspace(0,flag_a/1000,NP);for i=1:NySinPhi=ys(i)/(flag_D);alpha=2*pi*yP*SinPhi/(flag_lambda/1000000000);SumCos=sum(cos(alpha));SumSin=sum(sin(alpha));B(i,:)=(SumCos^2+SumSin^2)/NP^2;endN=255;Br=B/max(B)*N;image(ymax,ys,Br);title('衍射条纹');colormap(gray(N));三、设计阶段3.1进入模块设计进入实验界面模块是用来与使用软件者交互的界面。

经典MATLAB图形用户界面设计

经典MATLAB图形用户界面设计

使用场景
按钮适用于需要用户进行选择或确认的操作, 例如开始、停止、重置等。
属性设置
可以设置按钮的文本、大小、位置、样式等 属性。
事件处理
当用户点击按钮时,会触发相应的事件,可 以通过编写回调函数来处理该事件文本信息。
属性设置
可以设置文本框的长度、宽度、字体、颜色等属性。
事件处理
当用户滑动滑块时,会触发相应的事件,可以通过编写回调函数来处理该事件。
下拉菜单
功能描述
下拉菜单用于显示多个选项供用户选择。
属性设置
可以设置下拉菜单的选项、默认选项 等属性。
使用场景
适用于需要提供多个选项供用户选择 的场景,如文件打开、保存等。
事件处理
当用户选择下拉菜单中的某个选项时, 会触发相应的事件,可以通过编写回 调函数来处理该事件。
添加事件处理函数
为每个按钮添加事件处 理函数,实现点击按钮 后执行相应的计算操作。
显示结果
在GUI界面上添加一个文 本框,用于显示计算结 果。
保存和运行
保存GUI文件,并运行程 序,测试计算器功能是 否正常。
设计一个数据可视化GUI
加载和预处理数据
使用Matlab的函数加载数据, 并进行必要的预处理。
表格
功能描述
表格用于显示和编辑二维数 据表格。
使用场景
适用于需要展示和编辑大量 数据的场景,如数据统计、 数据分析等。
属性设置
事件处理
可以设置表格的行数、列数、 单元格内容、样式等属性。
当用户编辑表格中的数据时, 会触发相应的事件,可以通 过编写回调函数来处理该事 件。
04
高级GUI设计技巧
使用布局管理器
化的界面设计和代码生成功 能。

matlab用户界面设计

matlab用户界面设计

Position
uimenu对象的相对位置。顶层菜单从左到 右编号,子菜单从上至下编号
医学技术与工程学院
Uimenu 对象属性
Separator
分割符 - 线模式
on: 分割线在菜单项之上
{off}: 不画分割线
Visible
uimenu对象的可视性
{on}: uimenu对象在屏幕上可见
off: uimenu对象不可见
UserData
用户指定的数据。可以是矩阵,字符串等等
医学技术与工程学院
一些控件对象的主要属性
1 Pushbutton
Value: Value=Max选中,Value=Min不选中 Max:1 Min:0
2 Edit
String Max Min
Max-Min>1 多行;Max-Min<=1
单行
医学技术与工程学院
ForegroundColor
uicontrol前景( 文本)色。3元
素 的 RGB 向 量 或 MATLAB 一 个 预
先定义的颜色名称。缺省的文本色
是黑色。 HorizontalAlignment 标志串的水平排列
left:
相对于uicontrol文本左对齐
{center}:
相对于uicontrol文本居中
医学技术与工程学院
Uicontrol 对象属性
ButtonDownFcn 当uicontrol被选择时,MATLAB回调串传给函 数eval。初始值为空矩阵
Interrruptible
指定ButtonDownFcn和CallBack串是否可中断
{on}: 回调不能由其它回调中断
off:
回调串可被中断

第9章 MATLAB图形用户界面设计

第9章  MATLAB图形用户界面设计

set(hr1,'callback',['set(hr1,''value'',get(hr1,''max'')),',... 'set(hr1,''value'',get(hr1,''max'')),',... %选中将小圆圈 点黑 'set(hr2,''value'',get(hr2,''min'')),',... %将“互 斥”选项点白 'set(htitle,''fontangle'',''normal''),' ]); % 使 图 名 字体正体显示 hr2=uicontrol(gcf,'style','radio', 'string','斜体',... %创建“无线电”选择按键 %按键功能的文字标识'斜体' 'position',[0.7,0.58,0.15,0.08],... %按键位置 'callback',['set(hr1,''value'',get(hr1,''min'')),',... 'set(hr2,''value'',get(hr2,''max'')),',...
3.用户菜单的外观设计 主要取决于四个属性:位置‘Position’(总是 正整数1,2,3,自左到右,自上到下), 分割线‘Separator’)([on/off]),检录符 ‘Checked’( [on/off] 当取值为on时,一旦 那项菜单被选中,其前就出现‘V’),前景 颜色‘ForgroundColor’(字符或RGB三元组) 4.使能(Enable)与可见性(Visible)属性

MATLAB可视化界面设计

MATLAB可视化界面设计
除了GUIDE,MATLAB还提供了App Designer(应用程序设计器)工具,这是一个更高级的可视化设计工具,可以更快速地创建复杂的GUI设计。App Designer提供的功能和工具比GUIDE更加强大,如状态管理、动态布局、数据绑定等。用户可以利用App Designer,快速实现大规模的软件界面设计和开发。
总之,MATLAB提供了丰富的可视化界面设计工具和工具箱,用户可以根据自己的需求和熟悉程度,选择合适的方式进行界面的设计和开发。无论是通过编程实现自定义界面,还是使用内置的可视化工具箱,都能够帮助用户直观地展示和分析数据,提高工作效率和效果。
信号处理工具箱提供了一系列的信号处理函数和算法,如傅里叶变换、滤波、谱估计等。用户可以利用这些函数,对时域或频域信号进行分析和处理,并通过plot函数,将处理后的信号显示在界面中。
除了以上提到的工具箱,MATLAB还提供了大量的扩展工具箱,如统计工具箱、优化工具箱、控制系统工具箱等,用户可以根据自己的需求,选择合适的工具箱,进行数据的可视化和分析。
第二种方式是使用MATLAB内置的可视化工具箱。MATLAB提供了多个工具箱,如图表工具箱、图像处理工具箱、信号处理工具箱等,用户可以通过简单的调用函数和设置参数,实现丰富的数据可视化和分析。
图像处理工具箱提供了一系列的图像处理函数和算法,如滤波、分割、去噪、特征提取等。用户可以使用这些函数,对图像进行预处理和分析,并通过imshow函数,将处理后的图像ቤተ መጻሕፍቲ ባይዱ示在界面中。
MATLAB可视化界面设计
MATLAB是一个功能强大的计算机语言和环境,可以用于科学计算、数据分析、信号处理、图像处理、控制系统设计等多个领域。除了提供命令行界面,MATLAB还提供了丰富的可视化工具和界面设计功能,方便用户直观地展示和分析数据。

第7章 MATLAB图形界面设计

第7章 MATLAB图形界面设计

回调函数




在M文本编辑器中打开m文件,可以看到自动生成的 回调函数,该函数的命名利用对象句柄进行区分, 没有任何执行语句。 回调函数:Tag_Callback(hObject, eventdata, handles), 通过加入自己的处理语句,可以实现所需功能。 其中hObject是控件的句柄;eventdata是备用参数, 目前没有定义;handles是用户数据,本身是一个结 构数组,存放了当前窗口的所有对象的句柄,包括 图形窗本身、所有控件和菜单的句柄。并且可以增 加一些域用来传递用户数据。 利用guidata( H, handles )可以更新 H 的用户数据。

7.1.1 GUIDE的启动

可以如下不同方式启动GUIDE: 1. 在命令窗口提示符下输入guide; 2. 在工具栏选打开; 3. 在Start菜单中选MATLAB > ; 4. MATLAB File 菜单中选New > GUI。
空白界面 有控件的模板界面 有轴对象和菜单的模板界面 标准询问窗口
④ 复选框(Check Boxes):单个的复选框用来在两种状态之 间切换,多个复选框组成一个复选框组时,可使用户在 一组状态中作组合式的选择,或称为多选项;
⑤ 文本编辑器(Editable Texts):用来使用键盘输入字符串 的值,可以对编辑框中的内容进行编辑、删除和替换等 操作;
⑥ 静态文本框(Static Texts):仅用于显示单行的说明文字;
变。 水平对齐方式 Horizontal Alignment可以是left, center, 2) 静态文本编辑框的属性设置。 right。 FontSize: 15 %字体大小 控件句柄Tag有默认值,建议修改为带有具体含义的字 FontUnits: points %字体大小的度量单位 符串,以增加程序可读性和方便回调函数调用。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

点击工具栏上的菜单编辑器(MenuEditor),打开菜单编辑器,如下:
在MenuBar中新建一个菜单项,名字为“文件”,其他设置请看下图:
在“文件”菜单下添加菜单项:“打开”,“保存”,“退出”。见下图:
----------------------- Page 3-----------------------
那说明,我们保存的.fig文件的目录不是当前目录,但是没关系啊,我们只要点击“Change
Directory”来改变当前目录。当然,如果你想把当前目录添加到MATLAB路径也可以,那
就点击“AddtoPath”就OK了。我在这里推荐点击“ChangeDirectory”,因为没有什么太
因此,这里的退出菜单项的程序就是一句,如下:
close(handles.figure_pjimage);
其实,用delete函数也是可以的,就是:delete(handles.figure_pjimage);看你的心情了。
但是运行程序的时候,你会发现,当你打开图片的时候,如果点“取消”按钮,那么在MATLAB
return;%如果点了“取消”
else
fpath=fullfile(pathname,filename);%获得全路径的另一种方法
----------------------- Page 8-----------------------
end
img_src=getappdata(handles.figure_pjimage,'img_src');%取得打开图片的
作者:彭军
邮件:pjun9@
博客:/pengjun
----------------------- Page 5-----------------------
文件下面的菜单项和快捷键我们都能看到,但是我们没有写程序,所以就算点也没有什么响
应。还有如果不想设置快捷键,可以在MenuEditor中设置,只要把其选择为Ctrl+none就
行了,如下:
的命令窗口会弹出错误,那是因为我们没有处理取消的情况。下面我们来处理下这个问题,
只要把m_file_open_Callback下面的程序更改为如下程序即可:
[filename,pathname] =uigetfile(...
{'*.bmp;*.jpg;*.png;*.jpeg','ImageFiles(*.bmp, *.jpg,*.png,
img_src=imread(fpath);imshow(img_src);
不仅如此,我们的保存菜单的Callback函数,如何去获得打开菜单的Callback
函数下的img_src变量呢?这里就要将img_src来作为一个共享的数据。许多界面
编程的朋友,喜欢用global声明。我个人不喜欢这样用,因为有更好的方法。那
所在的目录的路径。比如: filename =5.jpg ,pathname =C:\Documents and
Settings\Administrator\MyDocuments\。
那么获得路径之后,我们要怎么样才能读入和显示一个图片呢?读入图片可以用imread函
数,而显示可以在一个坐标轴上。那么我们需要在界面上画上一个坐标轴,为了对比,我们
和String属性。
设置当前Figure窗口的Tag属性为:figure_pjimage,窗口的标题(Name属性)为:图像处理
实例。如下:
然后,点击工具栏的保存按钮。之后,点击工具栏的运行按钮(RunFigure)。注意,工具栏
的图标都会有提示的,像运行按钮的提示就是RunFigure. 我们会看到如下的界面:
在MATLAB的命令窗口(CommandWindow)中运行guide命令,来打开GUIDE界面,如下:
然后,选择空模板(BlangGUI),点击OK,即可打开GUIDE的设计界面,如下:
----------------------- Page 2-----------------------
下面请跟我一步一步做一个图像处理的程序,如果您坚持做完这个实例,我想MATLAB界
面编程对您而言,就没有什么难度了。当然,我这里说的是,您首先要有一定的MATLAB
编程基础。还有,我的MATLAB版本是2008a。在2008a以前的版本中没有工具栏编辑器,
如果需要工具栏要手动写程序,这个我就不多讲了。好了,废话少说,跟我来吧!
[filename,pathname] =uigetfile(...
{'*.bmp;*.jpg;*.png;*.jpeg','ImageFiles(*.bmp, *.jpg,*.png,
*.jpeg)';...
'*.*', 'AllFiles(*.*)'},...
'Pickanimage');
保存.m文件,并运行程序。点击“文件”下的“打开”,会打开如下的打开对话框:
----------------------- Page 6-----------------------
选择一个文件之后,程序中的filename就是你选择的文件的文件名,pathname就是该文件
就是用setappdata和getappdata两个函数。我们可以为界面上面的任何一个具有
Tag属性的空间添加应用程序数据。当然我比较喜欢将这些共享的应用程序数据
统一添加到Figure窗口上,因为这样容易记,如果一个控件一个,感觉不容易记。
你在.m文件中会发现除了各个菜单项的Callback函数以外,还有两个函数:
阵。代码如下:
setappdata(handles.figure_pjimage,’img_src’,0);
然后,在m_file_open_Callback函数的最后写上如下程序:
setappdata(handles.figure_pjimage,’img_src’,img_src);
画两个坐标轴,一个显示处理前,一个显示处理后的。并且将处理前的坐标轴的Tag属性改
为axes_src,处理后的坐标轴的Tag属性为axes_dst。更改之后,保存。如下:
然后在m_file_open_Callback程序原来的基础上,再添加如下的程序:
axes(handles.axes_src);%用axes命令设定当前操作的坐标轴是axes_src
序都是要写在这个M文件里面的。在编程中,我们的每一个鼠标动作都对应一个Callback
函数。那么我们的菜单项也是如此的。
在界面上,单击鼠标右键选择“PropertyInspector”,即可打开属性窗口。当我们点击不同的
控件时,其对应的属性都会在这里显示,我们可以进行修改。最主要的属性莫过于Tag属性
*.jpeg)';...
'*.*', 'AllFiles(*.*)'},...
'Pickanimage');
----------------------- Page 1-----------------------
MATLAB
MATLAB
一个实例搞定MMAATTLLAABB界面编程
fpath=[pathnamefilename];%将文件名和目录名组合成一个完整的路径
imshow(imread(fpath));%用imread读入图片,并用imshow在axes_src上显示
运行程序,通过“打开”菜单项,打开一个图片。效果如下:
----------------------- Page 7------------------View”来查看该菜单项
的响应函数,也就是Callback函数。也可以在pjimage.m中看,比如保存的Tag属性是
m_file_save,那么它对应的Callback函数的名字就是m_file_save_Callback。依次类推了。
那么,我们在m_file_save_Callback函数中就可以像这样的来提取img_src,如
下:
img_src=getappdata(handles.figure_pjimage,’img_src’);
那么保存的时候,自然会用到保存对话框了。要用保存对话框,就要用到
uiputfile函数了,具体的请用helpuiputfile查看。
那么,保存菜单项下的程序(m_file_save_Callback),可以这样写:
[filename,pathname] =uiputfile({'*.bmp','BMPfiles';'*.jpg;','JPG
files'},'Pickan Image');
if isequal(filename,0)||isequal(pathname,0)
如果需要在菜单项“退出”上面添加一个分割线的话,选中“Separatorabovethisitem”就
行了。
----------------------- Page 4-----------------------
保存我的界面为pjimage.fig. 保存完毕之后,会自动打开pjimage.m文件,而我们所有的程
下面我们来写打开菜单项的函数,要打开一个图片,当然要用打开对话框了。在界面编程中,
打开对话框的函数是uigetfile. 关于它的详细的说明用helpuigetfile命令查看。下面是打开
菜单的响应函数:
functionm_file_open_Callback(hObject,eventdata, handles)
相关文档
最新文档