MATLAB—GUI新手入门教程

2023-11-05

如果不想看文章,可以看参考视频1或者参考视频2

阅读本文,可以节省一个半小时的看视频的时间哦~

1.GUI界面介绍

在MATLAB命令行中输入guide,回车,进入GUI的界面,
如图,左边两列为基本的控件单元,分别有:按钮、滑动条、单选按钮、复选框、可编辑文本、静态文本、弹出式菜单、列表框、切换按钮、表、坐标区、面板、按钮组、ActiveX控件。网格上方的工具中,常用的按钮有:对齐对象、菜单编辑器、运行图窗。
在这里插入图片描述

选择需要的控件,摆放在界面中即可。

双击每个控件,会弹出该控件的检查器,里面有很多属性

每一个控件都有唯一的Tag标注用于区别,在创建好控件之后,对应的Tag值就会存入handles句柄的结构体中。Tag的值会与回调函数的函数名相关联。

Handles句柄这个结构体中的属性都是全局变量,用于在不同的回调函数之间实现参数的传递。如handles.edit1代表的就是可编辑文本框1这个对象。

在函数中的局部变量可以通过新建handles结构体的属性,变成全局变量,记得一定要更新这个结构体。如handles.Threshold= Th;
guidata(hObject,handles)。就可以实现在其他所有的函数中调用handles.Threshold这个属性的值。

一般情况下,及时删除了控件,也不要随意删掉.m文件中的看似没有用到的代码,这样很容易出错。

2.各个控件的使用方法

2.1.1 按钮

按钮pushbotton为最基本的控件,在GUI界面中点击按钮之后,就会自动进入该按钮的回调函数,然后执行该回调函数中的内容。图2.2所示,在.m文件中查看定位该回调函数的方法,右键—查看回调—Callback。鼠标点击按钮,进入callback回调函数中。KeypressFcn与键盘输入有关,CreateFcn和DeleteFcn与这个按钮的创建与删除有关,一般不用。

在这里插入图片描述

图2.2 查看按钮的回调函数

2.1.2 滑动条

如图2.3,在滑动条的属性中设置最大最小值,就是滑动条两端的数值,其中较为重要的属性有Value,初始值就是滑块在初始的时候停放的位置,一般设为0。在滑块滑动的过程中,Value的值会随之变化,根据需要在相关的回调函数中通过代码get(handles.slider2,‘Value’)获取value的值,得到的是数值num。
在这里插入图片描述
图2.3 滑动条属性设置

2.1.3 文本框

文本框分为静态文本和可编辑文本。

静态文本框内的文字初始化时输入,之后不可改变;可编辑文本框内的文字可以在运行的时候从键盘输入,或者是在其他控件的回调函数中,向可编辑文本框的String属性写入需要显示的内容如set(handles.edit1,‘String’,num2str(round(th*255))),注意String为字符串类型的,向两种文本框中写入的都是字符串类型。双击控件进入检查器,如图2.4 可编辑文本的检查器图2.4,在其中可以修改属性,常用的有字体、字号、Tag、String。
在这里插入图片描述
图2.4 可编辑文本的检查器

2.1.4 单选框和复选框和切换按钮

单选框和复选框的使用方法类似,**在属性中设置max、min的数值。按下时或者是勾选时,value值等于max的数值,未选择时Value值为min的数值。**一般可以在单选框或复选框的回调函数中使用,val = get(handles.checkbox1,‘Value’);匹配if—else语句执行不同的操作,表示按下或未选中执行指定的不同操作。Value的初始值只能在max和min之间选择。切换按钮(togglebutton),其和pushbutton有所区别。该控件主要用来标识状态(0-1双状态),pushbutton主要用来触发事件。切换按钮点击一次Value值为0,再点击一次value值为1。

2.1.5 弹出式菜单和列表框

两者的使用方法类似,其属性中String的行数与Value值对应,用户点击了第几行,Value值就为几。结合switch-case语句,实现点击不同的行就可以执行不同的功能。如图2.5所示。

在列表中,str = get(handles.listbox1,‘String’);获得列表框中的所有String,str=为一个cell,selectes_index =
get(handles.listbox3,‘Value’);获取选中的是第几行。set(handles.text10,‘String’,str{selectes_index});通过索引得到点击的那一行的String字符串,然后向某个文本框内写入。

还可以定义列表框中每一行String所代表的具体的数值。首先要在listbox 的createFn中定义,即表示在刚刚创建的时候就调用的函数。定义结构体的一个新的属性,用cell保存,其中用于存放各行所对应的具体数值。
在这里插入图片描述

图2.5 列表框的属性栏

2.1.6 按钮组

放置一个按钮组后,在其中放置若干个单选按钮或者切换按钮。按钮组的特点是:同一时刻只有一个可以被选中。在按钮组bottongroup的SelectionchangeFcn函数中。获取当前选中的按钮的Tag:current_obj= get(eventdata.NewValue,‘Tag’);返回的是字符串,然后结合switch-case语句,即可实现点击不同的按钮,实现不同的功能。
按钮组中不可以放多个按钮(pushbotton),否则无效!只能放置多个单选按钮和切换按钮!
因为单选按钮按下的value是max,取消的value是min;
切换按钮按一下的value是0,按两下的value是1,
但是按钮(pushibotton)按下之后,值不会变换,只会进入回调函数。

2.1.7 菜单编辑器

菜单栏中的内容是显示在界面的菜单栏中,通过新建不同的主菜单和下一级的菜单实现点击菜单栏后的一系列内容。
上下文菜单是指在界面中,鼠标点击右键所显示的内容,使用方法与菜单栏相同。如图2.6所示。

编辑器上方可以新建主菜单和子菜单、移动菜单的从属关系,右边菜单属性,文本就是界面上菜单显示的文字内容,标记就是类似于控件的Tag,右下方点击查看即可进入该菜单栏的回调函数,表示在界面的菜单栏中,点击这一栏的文字就会执行的操作。

在这里插入图片描述

图2.6 菜单栏编辑器

常见代码


%打开文件,获取文件路径:第一个大括号内是文件的指定格式

 [imgfilename imgpathname]=uigetfile({'*.jpg;*.png'},'Select a RGB image');

%保存文件
[FileName,PathName]=

uiputfile({'*.jpg','JPEG(*.jpg)';'*.bmp','Bitmap(*.bmp)';'*.gif','GIF(*.gif)';'*.*',  'All Files (*.*)'},'Save
Picture','Untitled');
  
 %设置显示图片的区域
axes(handles.axes1)

%获取句柄某个对象的某种属性
thresh
= get(handles.edit1,'String')

%设置句柄某个对象的某种属性

set(handles.text5,'String',thresh)

%更新句柄
guidata(hObject,handles)

%弹出提示框(无需用户输入)
msgbox(‘建议输入一下格式的内容’)

%弹出对话框(用户可以在其中输入)


prompt={'请设置高斯噪声的均值' '请设置高斯噪声的方差' };

%一个单引号对应一行文字,下面会有人机交互对话框用于从键盘输入

name='输入均值方差';

%提示框的名称

numlines=1;

defaultanswer={'0.04' '0.01'};

%默认对话框中的数值

%获取对话框中的用户输入信息



anss=inputdlg(prompt,name,numlines,defaultanswer);

%用户在每一行的对话框中输入的信息将存放在anss这个cell中

x1=str2num(anss{1});

x2=str2num(anss{2});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MATLAB—GUI新手入门教程 的相关文章

  • 数字图像处理——滤波器

    本文内容参考 数字图像处理基础 Wilhelm Burger等著 点运算 是在不改变图像大小 几何形状以及局部结构的情况下 xff0c 对像素值进行修改 xff0c 新图像的像素值只与原图像同一位置的像素值有关 滤波器 一般会用到原图像中的
  • 【数字图像处理】YUV420转RGB并BMP存储<纯C++实现>

    1 读取akiyo qcif yuv YUV420文件 xff0c 按帧读取 xff0c 转RGB xff0c 并存储到BMP文件 2 暂时实现读取一帧并存储一张BMP图片 若要读取YUV序列 xff0c 写成循环方式即可 3 生成的BMP
  • 【图像处理】Hough直线变换

    I 直线篇 1 直线是如何表示的 对于平面中的一条直线 在笛卡尔坐标系中 常见的有点斜式 两点式两种表示方法 然而在hough变换中 考虑的是另外一种表示方式 使用 r theta 来表示一条直线 其中r为该直线到原点的距离 theta为该
  • 【C++笔记】OpenCV图像Mat格式转换为QT中QImage并显示zai Qlabel上

    Mat rgb QImage imgGray img if imgGray channels 1 imgGray img QImage const unsigned char imgGray data imgGray cols imgGra
  • OpenCV 陷波滤波器消除周期性噪音 C++

    观察下面图像 有明显的近似水平线的噪音模式 我们希望他在频率域内的成分沿垂直轴集中 下图是该图像的谱 将垂直轴的分量去掉 构建的陷波器如下 原图与结果图对比 滤掉的空间噪音模式 代码实现 include opencv2 opencv hpp
  • 【数字图像处理】四.MFC对话框绘制灰度直方图

    本文主要讲述基于VC 6 0 MFC图像处理的应用知识 主要结合自己大三所学课程 数字图像处理 及课件进行回忆讲解 主要通过MFC单文档视图实现点击弹出对话框绘制BMP图片的灰度直方图 再获取平均灰度 中指灰度和标准差等值 文章比较详细基础
  • 镜头选型——景深计算

    正在上传 重新上传取消 1 概述 先看两个例子 拍摄花 昆虫等照片时 背景拍的比较模糊 突出被拍物 但当拍摄纪念照 风景等照片时 却会把背景拍摄得和被拍对象一样清晰 这两者就是不同景深 前者为浅景深 拍摄聚焦到被拍物上 只能拍清一小段距离
  • 【图像处理】彩色直方图均衡

    sourcePic imread D Images pic loc 1870358810205041517 jpg m n o size sourcePic grayPic rgb2gray sourcePic figure imshow
  • 数字图像处理第一二章

    什么是数字图像处理 数字图像处理是指借助于数 计算机来处理数字图像 当x y和灰度值f是有限的离散数值时 称该图像为数字图像 一幅图像可定义为一个二维函数f x y 其中x和y是空间 平面 坐标 而在任一对空间坐标 x y 处的幅值f称为图
  • Matlab找出矩阵每一行的最大值及其位置

    dis max arr 2 dis array zeros M N for i 1 size dis hang max dis i 1 c find edtImage i hang max dis array i c 1 end figur
  • 基于python的数字图像处理--学习笔记(一)

    基于python的数字图像处理 学习笔记 一 图像处理python常用库和函数 1 opencv python库 2 opencv python常用函数 图像处理python常用库和函数 使用opencv python读取图片数据 并使用n
  • MATLAB—GUI新手入门教程

    GUI界面基本操作 1 GUI界面介绍 2 各个控件的使用方法 2 1 1 按钮 2 1 2 滑动条 2 1 3 文本框 2 1 4 单选框和复选框和切换按钮 2 1 5 弹出式菜单和列表框 2 1 6 按钮组 2 1 7 菜单编辑器 常见
  • 图象恢复——(逆滤波,维纳滤波)

    目的 对获取图像在频域用高斯函数进行退化并叠加白噪声 对退化图像进行逆滤波和维纳滤波恢复 比较原始图像和恢复图像 对利用逆滤波和维纳滤波恢复方法恢复图像进行比较 一 基本原理 图像复原是一种客观的操作 通过使用退化现象的先验知识重建或恢复一
  • 一文了解视频编解码原理

    视频编解码算法分为传统算法和基于深度学习的方法 本文主要介绍视频编解码技术的原理 部分内容和图片参考网上技术博客 链接已放在文章末尾 一 基本术语 数字图像的定义及理解可以参考这篇文章 数字图像处理笔记 一文搞懂数字图像基础 颜色深度 存储
  • 《数字图像处理》学习总结及感悟:第二章数字图像基础(2)电磁波、传感器及辐射成像原理

    前往老猿Python博文目录 https blog csdn net LaoYuanPython 一 引言 本系列文章记录老猿自学冈萨雷斯 数字图像处理 的感悟和总结 不过估计更新会比较慢 白天要工作 都是晚上抽空学习 学习完一章再回头总结
  • 【图像处理】CvArr、Mat、CvMat、IplImage、BYTE转换

    一 Mat 类型 矩阵类型 Matrix 在openCV中 Mat是一个多维的密集数据数组 可以用来处理向量和矩阵 图像 直方图等等常见的多维数据 Mat有3个重要的方法 1 Mat mat imread const String file
  • 数字图像处理-离散傅里叶变换(opencv3+C++显示)

    参考 http daily zhihu com story 3935067 http blog csdn net keith bb article details 53389819 在学习信号与系统或通信原理等课程里面可能对傅里叶变换有了一
  • 《数字图像处理》学习总结及感悟:第二章数字图像基础(5)数学工具

    前往老猿Python博文目录 https blog csdn net LaoYuanPython 一 引言 本系列文章记录老猿自学冈萨雷斯 数字图像处理 的感悟和总结 不过估计更新会比较慢 白天要工作 都是晚上抽空学习 学习完一章再回头总结
  • 「 标准 」NTSC、PAL、SECAM 三大制式简介

    NTSC National Televison System Committee 制式 NTSC 电视标准 每秒 29 97 帧 简化为 30 帧 电视扫描线为 525 线 偶场在前 奇场在后 标准的数字化 NTSC 电视标准分辨率为720
  • 【保姆级教程】使用tensorflow_hub的预训练模型实现神经风格迁移

    目录 一 神经风格迁移 二 安装依赖 三 实践 四 其他 一 神经风格迁移 神经风格迁移 是一种优化技术 主要将两个图像 内容 图像 和 风格

随机推荐

  • STM32 进阶教程 5 - 内联函数

    前言 在计算机科学中 内联函数 有时称作在线函数或编译时期展开函数 是一种编程语言结构 用来建议编译器对一些特殊函数进行内联扩展 有时称作在线扩展 也就是说建议编译器将指定的函数体插入并取代每一处调用该函数的地方 上下文 从而节省了每次调用
  • 用matlab生成规定维度的随机不重复矩阵

    这几天用到一个小功能 要生成随机不重复的整数矩阵 而且要求行和列数 写了个很好用的函数 分享一下 先上效果 以1为下界 10为上界 生成5行1列的随机矩阵s 以10为下界 100为上界 生成5行3列的随机矩阵s 想要直接用的可以去我资源界面
  • 天龙八部网单服务器修改爆率,【天龙八部3】网单一键安装服务端+GM工具+GM刷装备+视频教程 电脑单机版游戏...

    天龙八部3 网单一键安装服务端 GM工具 GM刷装备 视频教程 电脑单机版游戏 资源介绍 支持系统 WINXP WIN7 WIN8 WIN10 32 64位 支持网络 单机 次更新后为正常开出宝宝 繁殖为单人繁殖 修改宝宝为打满12技能 还
  • 基于yolov5的火焰识别

    基于yolov5的火焰识别 1 准备工作 yolov5项目下载 下载yolov5项目代码 其链接为 yolov5项目地址 并且在PC机上配置环境 即正常按照requirements安装依赖包 而后根据自身需要下载相应的权重文件 yolov5
  • 如何查看和修改Windows远程桌面端口

    如何查看和修改Windows远程桌面端口 一 查看Windows远程桌面端口 1 查看远程桌面服务TermService进程PID 选择 开始 gt 运行 输入 cmd 打开命令行窗口 执行 tasklist svc find Ter 如果
  • ununtu HI3559A学习笔记

    刚装上ubuntu18 04没有为wifi适配器 原因 没有驱动 网卡mediatek mt7630e 解决 来源 https blog csdn net zw chen article details 78355047 内容 Mediat
  • 全面了解一致性哈希算法及PHP代码实现

    在设计一个分布式系统的架构时 为了提高系统的负载能力 需要把不同的数据分发到不同的服务节点上 因此这里就需要一种分发的机制 其实就是一种算法 来实现这种功能 这里我们就用到了Consistent Hashing算法 在正式介绍Consist
  • 开发者,为什么需要构建知识图谱

    作者简介 安晓辉 10多年开发经验 曾任软件开发工程师 项目经理 研发经理 技术总监等岗位 著有 Qt Quick核心编程 Qt on Android核心编程 你好哇 程序员 等书籍 斜杠青年 技术专家 职业规划师 图书作者 在行西安首批行
  • Set集合转为List集合常见的方式

    将 Set 转为 List 可以有多种方法 以下是两种常见的实现方式 使用构造方法 可以使用 List 的构造方法 ArrayList Collection
  • 使用matlab通过遗传算法实现多元函数极值计算

    这里是对一个二元函数求解极大值问题 如果你希望求解更多元函数 需要添加额外的基因 例如z 在pop数组中添加第三列 染色体的第三列基因 设置新的评判标准函数 fitness 如果你希望提高运算精度 可以尝试增大种群规模 优秀基因出现概率更高
  • flowable(四) - 使用flowable-modeler-ui 定义流程

    步骤 地址 Flowable Modeler http localhost 8080 flowable modeler Flowable Task http localhost 8080 flowable task Flowable Adm
  • 使用Pytorch DataLoader快捷封装训练数据、测试数据的X与Y

    DataSet的用法可以参考 pytorch 构造读取数据的工具类 Dataset 与 DataLoader pytorch Data学习一 DataLoader的封装方法可以参考 Pytorch DataLoader一次性封装多种数据集
  • 在pycharm中升级pip失败和pip安装pytorch torchvision opencv

    pytorch官网 https pytorch org get started locally 查看版本 pip version pip 20 2 3 from c users 14172 pycharmprojects pythonpro
  • ping命令知识详解

    1 Ping的基础知识 Ping 是一个十分好用的TCP IP工具 功能 用来检测网络的连通情况和分析网络速度 2 Ping命令详解 参数意思和使用 t Ping指定的计算机直到中断 a 将地址解析为计算机名 n count 发送 coun
  • Spring--Bean相关

    你对Spring中的bean了解吗 都有哪些作用域 Scope Spring 官方文档对 bean 的解释是 In Spring the objects that form the backbone of your application
  • html2canvas生成图片底部出现白边儿的解决方法

    场景 使用html2canvas的时候 生成的图片底部出现了白边 产生白边原因 可能是由于像素渲染问题导致的 移动设备的屏幕像素密度 Pixel Density 较高 有时会导致在两个相邻元素之间出现细小的间隙或白线 解决方法 将canva
  • 解决 ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES) 问题

    解决 ERROR 1045 28000 Access denied for user root localhost using password YES 问题 最近新装好的mysql在进入mysql工具时 总是有错误提示 mysql u r
  • [leetcode 周赛 150] 1161 最大层内元素和

    目录 1161 Maximum Level Sum of a Binary Tree 最大层内元素和 描述 思路 代码实现 1161 Maximum Level Sum of a Binary Tree 最大层内元素和 描述 给你一个二叉树
  • 网络编程(详)

    一 概述 计算机网络 是指将地理位置不同的具有 独立功能的多台计算机及其外部设备 通过通信线路连接起来 在网络操作系统 网络管理软件及网络通信协议的管理和协调下 实现资源共享和信息传递的计算机系统 网络编程 在网络通信协议下 实现网络互连的
  • MATLAB—GUI新手入门教程

    GUI界面基本操作 1 GUI界面介绍 2 各个控件的使用方法 2 1 1 按钮 2 1 2 滑动条 2 1 3 文本框 2 1 4 单选框和复选框和切换按钮 2 1 5 弹出式菜单和列表框 2 1 6 按钮组 2 1 7 菜单编辑器 常见