matlab GUI界面编程总结

简介: Matlab GUI编程总结 代码示例:http://download.csdn.net/detail/nuptboyzhb/4474277 1.    创建及初始化界面(Figure) SystemFrameHandle=figure(1);%创建一个窗口 clf reset       ...

Matlab GUI编程总结

代码示例:http://download.csdn.net/detail/nuptboyzhb/4474277

1.    创建及初始化界面(Figure)

SystemFrameHandle=figure(1);%创建一个窗口

clf reset                                    

set(gcf,'name','CSplatform NUPT','numbertitle','off',...

   'unit','normalized','position',[0.02,0.1,0.92,0.82],...

'menubar','none');

说明:第一句是新创建一个窗口,并且记录窗口的句柄。第二句话是清除和重置相关的窗口及图形信息。第三句是设置gcf的属性。属性的格式是:先<属性名>,后紧接着是属性的<>。其中gcfGet handle to current figure.也即是获得当前窗口的句柄。窗口的属性很多,具体可以参看matlab帮助文档。http://www.mathworks.cn/help/techdoc/ref/figure_props.html;jsessionid=b1a1b2c452f8eed5976059921483

2.    菜单(uimenu)

menu_file=uimenu(gcf,'Label','File(&F)');        

menu_open_image=uimenu(menu_file,'Label','Open Images(&O)');

说明:上述语句创建了2个菜单项。其中,第二个菜单项是第一个菜单项的子项。因此,我们可以看出,菜单的创建有2中方法:

handle = uimenu('PropertyName',PropertyValue,...)
handle = uimenu(parent,'PropertyName',PropertyValue,...)

uimenu的属性和uicontrol的属性一样,具体看第三节

3.    控件(uicontrol)

控件的创建有如下2中方法

handle =uicontrol('PropertyName',PropertyValue,...)
handle = uicontrol(parent,'PropertyName',PropertyValue)

具体是创建哪个类型的控件,控件的属性等,都有<属性>及其<值>决定。

部分属性解析:

1 ‘BakcgroundColor'(背景颜色)---ColorSpec(特定的颜色).这个属性声明了用来填充uicontrol对象的背景颜色,ColorSpec是一个三元素的RGB 向量或者标准颜色的字符串号,默认的颜色值是和系统相关的,并且可以通过输入命令get(0,'DefaultUuicontrolBackgroundColor')获得。该<值>的格式为[0.10.1 0.1];其中,三个值分别代表红、绿、蓝。值的范围0~1
2 ‘Callback'(返回,回调)----string(字符串)。这个属性声明了当用户触发uicontrol对象(如:在按下一个'pushbutton'或者拖动一个'slider')时候所执行的字符串(一般为函数名),'frame' 和静态的'text'uicontrol类型不发出回调。更确切的说,callback就是设置控件的消息响应处理函数。
3 ‘CData'--m-by-n-by-3array( 矩阵)这个属性是一个在'pushbutton'或'fogglebutton'uicontrol类型上显示的真彩色图像。
4  ‘Enable'---{‘on'}(默认状态)|‘inactive'(静态)|'off'(关)这个属性声明了是否启用这个uicontrol对象,当设置为'on'的时候,在这个uicontrol被选中的时候,执行这个回调字符串,当设置为'off'的时候,这个uicontrol标签字符串就变暗。当设置为'inactive' 的时候,uicontrol没有被变暗,当设置为'off'和'inactive'的时候,不执行这个回调字符串,但是'ButtonDownFcn'属性还是会起作用。
5 ‘Extent'(宽度,长度)---[0 0 width heigth],这个属性是一个只读属性,它返回用来标识这个uicontrol所使用的文本字符串的大小,其格式为标准的直角坐标格式,单位为'Units'属性所声明的单位,这个属性可用于确定装载所期望标签字符串而需要的uicontrol的大小。
6 ‘FontAngle'(字体倾斜度)---{‘normal'}|'italic'(斜体的)|'oblique'(斜的,歪的)这个属性声明了所用的字符的倾斜度。
7 ‘FontName'(字体)---string这个属性声明了所使用的字体类型,使用'FixedWidth'就将字体设置为保存在根对象的'FixedWidthFontName'属性中的字体。
8 ‘FontSize'(字体大小)---number(数字),声明了字体的大小,单位为'FontUnits'属性所声明的单位。‘FontUnits—{‘points'(点)}|'normalized'|'inches'(英寸)|'centimeters'(厘米)|'pixels'(图素)这个属性声明了字体相对于这个高度的大小使用的单位,设定为'normalize'是指uicontrol的高度为1.
9 ‘FontWeight(字体粗细)'---'light'|{‘normal'}|'demi'(半)|'boid'
10 ‘ForegroundColor'(前景色)---ColorSpec(色值)声明了uicontrol的标签文本的颜色,ColorSpec是一个三元素的RGB向量,或者是一个标准颜色的字符串名,默认值为黑色。
11‘HorizontalAlignment'(水平方向上的对齐方式)—{‘left'}(左)|'center'(中)|'right'(右)这个属性声明了uicontrol在水平方向上的对齐方式,在windowspc机上,这个属性只影响到'edit'和'text'类型的uicontrol.
12 ‘ListboxTop'---scalar,对'listbox'类型的uicontrol,这个属性声明了显示在列表最顶端的字符串的索引。
13 ‘Max'(最大)---scalar(比列),对于'radiobutton'和'checkbox'类型的uicontrol,'Max'是uicontrol为'on'时'Value' 属性的值,对于'slider'类型的uicontrol,‘Max'是用户能够选择的最大值,并且它必须比'Min'属性所声明的值要大,默认值为1,对于'edit' 类型的uicontrol,如果'Max'-‘Min'>1,那么就可以进行多项选择,如果'Max'-‘Min'<=1,那么就只可以进行单项选择。
14 ‘Min'---scalar类似13
15 ‘Position'(位置)---[left(左) bottom(底) width(宽) heigh(高)]它声明了uicontrol的位置,格式为相对于图形窗口左下角的标准直角坐标格式,单位为'Units'属性所定义的单位,windowspc中‘popupmenu'类型的uicontrol的高度是由字体来设置的,并且将heigth 忽略。
16 ‘SliderStep'(滚动条步长)—[arrow_step trough_step]这个属性声明了一个值,这个值是经过标定的'Max'-'Min' ,大小在0到1间,arrow-step是点滚动条上的箭头时滚动条移动的步长, trough_step是点滚动条的滑槽时滚动条移动的步长。
17 ‘String'—string这个属性声明了显示在按钮,拨动按钮,静态文本,弹出菜单上的uicontrol标签字符串,弹出菜单中的多个菜单项或者列表中的多个列表项可以声明为字符串单元数组,字符串矩阵或者由竖线字符分开的字符串,多行可编辑文本或者静态文本控件中的行分隔符号出现在字符串矩阵的各行之间或者字符串单元数组的每一个单元之间,竖线字符未被解释成线分隔符,在'edit'类型的uicontrol中,经过修改的文本可以通过这个属性返回。
18.‘Style'(类型)—‘pushbutton'(按钮键)|'togglebutton'(触发器)|'radiobutton'(无线按钮)|'chechbox'(检查框)|'edit'(编辑)|'text'(文本)|'slider'(滑标)|'frame'(框)|'listbox'(列表)|'popupmenu'(跃上型)这个属性声明了要生成的uicontrol对象类型

19.’Visible’(可见)——该属性默认值为‘on’,当该值设置成’off’时,该控件不可见。通过控制控件的显示与不显示,可以完成‘刷新’界面的功能。

4.    设置和获取属性(set and get)

Set(handle,'PropertyName',PropertyValue,…)

PropertyValue=Get(handle, 'PropertyName');

上述是设置和获得属性的调用语法。无论是窗口、菜单还是控件,都可以通过set修改其属性,也可以通过get获取其属性。重要的是,一定要获得它们的句柄(handle),因此,在创建窗口、菜单和控件时,要保存它们的句柄。

Callback函数:在控件的回调函数中,我们可以通过获得或设置相应控件上的值,来达到我们的目的。因此,我们可以将句柄通过参数的方式或声明为全局变量,以达到在其他函数中设置获取控件的属性。

5.    特定区域显示图像

我们可以用subplot函数,将界面分成很多份,然后选择其中一份显示图像。但是,当我们的界面复杂时,我们需要在特定的区域内显示图像。我们可以采用如下方法:

NewImageShowHandle=axes('Units','normalized',...

  'position',[0.6 0.52  .3  .4],'Color',[0.2 0.2 0.2],'Visible','off','Parent',SystemFrameHandle);

imshow(uint8(reconstructed_image),'Parent',NewImageShowHandle);

也即是:先在特定的位置新建一个坐标(axes),然后在imshow函数中,设置显示图像的‘父窗口’即可。

6.    界面的刷新

一般情况下,不存在界面刷新的问题。但是,当我们需要在程序运行的过程中更新界面的某一个控件,我们就需要实时刷新界面。一般情况下,由于matlab在运行程序时,执行的是主线程,因为界面线程的优先级低于主线程,界面线程要等到主线程执行完之后才执行。但是,我们可以调用pause(0.000001)函数,让主线程暂停0.000001秒,刷新界面后再去执行主线程。基于此,我编写了一个‘进度提示’控件。详见示例代码。


目录
相关文章
|
2月前
|
机器学习/深度学习 算法 计算机视觉
m基于yolov2网络的火焰烟雾检测系统matlab仿真,包含GUI界面
YOLOv2算法在MATLAB 2022a中用于火焰烟雾检测,展示了多张检测结果图,成功定位火源和烟雾。该系统基于单次前向传播的深度神经网络,关键改进包括网络架构优化和损失函数设计,结合分类和回归误差。训练涉及ResNet-50预训练模型,使用SGDM优化器,75%数据用于训练,剩余25%为测试。代码示例展示了网络构建、训练选项设置和目标检测器的训练过程。
14 1
|
1月前
|
机器学习/深度学习 算法 计算机视觉
m基于yolov2深度学习的车辆检测系统matlab仿真,带GUI操作界面
MATLAB 2022a中实现了YOLOv2目标检测算法的仿真,该算法从Darknet-19提取特征,以实时预测图像内目标的位置和类别。网络结构结合了网格划分、Anchor Boxes和多尺度预测,优化了边界框匹配。核心代码包括数据集划分、预训练ResNet-50加载、YOLOv2网络构建及训练。训练选项设置为GPU加速,使用&#39;sgdm&#39;优化器,200个周期进行训练。
26 2
m基于yolov2深度学习的车辆检测系统matlab仿真,带GUI操作界面
|
7天前
|
机器学习/深度学习 存储 算法
m基于Yolov2深度学习网络的螺丝检测系统matlab仿真,带GUI界面
MATLAB 2022a中展示了YOLOv2算法的螺丝检测仿真结果,该系统基于深度学习的YOLOv2网络,有效检测和定位图像中的螺丝。YOLOv2通过批标准化、高分辨率分类器等优化实现速度和精度提升。核心代码部分涉及设置训练和测试数据,调整图像大小,加载预训练模型,构建YOLOv2网络并进行训练,最终保存检测器模型。
23 3
|
13天前
|
机器学习/深度学习 算法 计算机视觉
m基于Yolov2深度学习网络的智能零售柜商品识别系统matlab仿真,带GUI界面
MATLAB 2022a中展示了YOLOv2目标检测算法的仿真结果,包括多张检测图像。YOLOv2是实时检测算法,由卷积层和全连接层构成,输出张量包含边界框坐标和类别概率。损失函数由三部分组成。程序使用75%的数据进行训练,剩余25%作为测试集。通过ResNet-50预训练模型构建YOLOv2网络,并用SGDM优化器进行训练。训练完成后,保存模型为`model.mat`。
25 2
|
17天前
|
机器学习/深度学习 算法 计算机视觉
m基于Yolov2深度学习网络的人体喝水行为视频检测系统matlab仿真,带GUI界面
MATLAB 2022a中使用YOLOv2算法对avi视频进行人体喝水行为检测,结果显示成功检测到目标。该算法基于全卷积网络,通过特征提取、锚框和损失函数优化实现。程序首先打乱并分割数据集,利用预训练的ResNet-50和YOLOv2网络结构进行训练,最后保存模型。
28 5
|
25天前
|
机器学习/深度学习 算法 计算机视觉
m基于yolov2深度学习的细胞检测系统matlab仿真,带GUI操作界面
MATLAB 2022a中实现了YOLOv2细胞检测算法的仿真,该算法基于CNN进行细胞自动定位与识别。采用Darknet-19网络结构,结合SPP和FPN提升多尺度检测性能。程序中,数据集按75%比例划分训练集和测试集,使用预训练的ResNet-50构建YOLOv2网络,并用&#39;sgdm&#39;优化器进行训练。
16 0
|
1月前
|
机器学习/深度学习 数据采集 算法
m基于深度学习的肉类新鲜度检测系统matlab仿真,带GUI操作界面
MATLAB 2022a中使用GoogleNet模型对肉类新鲜度检测进行了仿真,展示了多个阶段的结果图像。该模型依赖Inception模块来捕捉不同尺度特征,通过堆叠的Inception模块、批量归一化和ReLU激活实现特征提取。训练目标是优化交叉熵损失函数。核心代码段设置训练选项并用训练数据训练网络。
17 0
|
4天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
4天前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)

热门文章

最新文章