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 新图像的像素值只与原图像同一位置的像素值有关 滤波器 一般会用到原图像中的
  • Matlab-数字图像处理-获取图片rgb颜色分量及截取子图

    Matlab 数字图像处理基础实验 获取图片rgb颜色分量及截取子图 Problem Statement 问题描述 1 Proficient in Matlab tools and complete two Matlab functions
  • 【图像处理】Hough直线变换

    I 直线篇 1 直线是如何表示的 对于平面中的一条直线 在笛卡尔坐标系中 常见的有点斜式 两点式两种表示方法 然而在hough变换中 考虑的是另外一种表示方式 使用 r theta 来表示一条直线 其中r为该直线到原点的距离 theta为该
  • Matlab实现图像的比例缩放

    以灰度图像circuit tif为例 利用Matlab图像处理工具箱中的imresize函数对图像进行比例缩放变换 要求 创建4个figure窗口 不可以用subplot 显示不出来放大效果 分别用于显示原始图像 等比例放大1 5倍后的图像
  • 数字图像处理-python基于opencv代码实现 反转变换、对数变换和幂律(伽马)变换

    本文主要介绍对 数字图像处理 第三章书中示例图片实现 反转变换 对数变换以及伽马变换的代码 若要获取更多数字图像处理 python 深度学习 机器学习 计算机视觉等高清PDF以及 更多有意思的 分享 可搜一搜 微信公共号 分享猿 免费获取资
  • 图像去雾算法学习

    现有的图像采集设备对外界环境的干扰非常敏感 在雾霾环境中 获取的户外图像往往退化严重 主要表现为场景特征信息模糊 对比度低 色彩失真 不利于计算机视觉系统对图像真实特征的提取 从而影响其后续的分析 理解 识别等一系列处理 很大程度上降低了视
  • 在MFC中使用OpenCV2.3.1

    最近要做数字图像处理的项目 大家都说VS MFC OpenCV很好用 于是我就试着弄了下 首先我到OpenCV ChinaOpenCV中文版主页找了一些很不错的教程开始做了 我用的是Visual Studio 2005 OpenCV的版本是
  • 高斯低通频率域滤波

    基本原理 频率域滤波 即将原图像通过傅里叶变换 转换至频率域 在频率域利用该域特有的性质进行处理 再通过傅里叶反变换把处理后的图像返回至空间域 所以 频率域的操作是在图像的傅里叶变换上执行 而不是在图像本身上执行 高斯低通滤波器传递函数表达
  • 深度学习数据集处理(一)获取公开数据集

    深度学习数据集处理系列 深度学习数据集处理 二 数据集划分训练集 测试集 深度学习数据集处理 三 将自己数据集制作为TFrecords 本文介绍一些常用的深度学习关于图像处理方面的常用公开数据集的下载链接 以及数据集的简单介绍 MNIST数
  • 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
  • 全景图像拼接——基本流程

    图像拼接技术是数字图像处理技术一个重要的研究方向 它即是将两幅或多幅相互有部分重叠的场景照片拼接成具有超宽视角 与原始图像接近且失真小 没有明显缝合线的高分辨率图像 可以很好地解决广角镜 鱼眼镜头等全景图获取设备的不足 如下图 图像拼接产生
  • Retinex理论及算法学习

    为了能够获取最大的信息量 达到更好的图像增强效果 了解人类视觉系统的特性和图像的属性是准确地选择图像增强方法的必备知识 一 人眼视觉系统 1 人眼成像 人的眼睛是一个非常复杂的器官 一般来说它就是一个球体 平均直径约为20mm 内壁是一层视
  • 基于OpenCV的视频道路车道检测

    基于OpenCV的视频道路车道检测 基于OpenCV的视频道路车道检测 前言 综述 运行方法 车道检测的实现 路面图像二值化 基于透视变换提取车道区域 基于二次多项式拟合车道线 计算曲率半径与车辆的偏移距离 用车道区域标注原始图像 总结 E
  • 一文了解视频编解码原理

    视频编解码算法分为传统算法和基于深度学习的方法 本文主要介绍视频编解码技术的原理 部分内容和图片参考网上技术博客 链接已放在文章末尾 一 基本术语 数字图像的定义及理解可以参考这篇文章 数字图像处理笔记 一文搞懂数字图像基础 颜色深度 存储
  • 数学形态学滤波学习

    一 概述 数学形态学是建立在集合论基础上了一门学科 具体在图像处理领域 它把形态学和数学中的集合论结合起来 描述二值或灰度图像中的形态特征 来达到图形处理的目的 形态学主要是通过结构元素和图像的相互作用对图像进行拓补变换从而获得图像结构信息
  • 图像边缘检测——一阶微分算子 Roberts、Sobel、Prewitt、Kirsch、Robinson(Matlab实现)

    图像边缘一般指图像的灰度变化率最大的位置 成因主要如下 1 图像灰度在表面法向变化不连续 2 图像中物体在空间上的深度不一致 3 在光滑的表面上颜色不一致 4 图像中物体的光影 边缘检测指的是从图像中检测边缘点和边缘段 并且描述边缘方向的过
  • 【图像处理】OpenCV截图小工具

    还存在一些小Bug 需要改进 include
  • 数字图像处理——图像锐化

    图像增强是图像处理的一个重要环节 早期的图像处理就是从图像增强开始的 人们研究对质量低的图像进行处理以获得改善质量后的图像 现今的图像增强还为后续的图像处理 如图像信息提取 图像识别等 提供更高识别度的图像 从图像处理技术来看 图像的摄取
  • 【数字图像处理】三.MFC实现图像灰度、采样和量化功能详解

    本文主要讲述基于VC 6 0 MFC图像处理的应用知识 主要结合自己大三所学课程 数字图像处理 及课件进行讲解 主要通过MFC单文档视图实现显示BMP格式图片 并通过Bitmap进行灰度处理 图片采样和量化功能 个人认为对初学者VC 6 0
  • 数字图像处理 在小波域中分析信号和图像

    一 简述 小波变换是用于分析特征在不同尺度上变化的数据的数学工具 对于信号 特征可以是随时间变化的频率 瞬态或缓慢变化的趋势 对于图像 特征包括边缘和纹理 小波变换主要是为了解决傅立叶变换的局限性而创建的 傅立叶分析是将信号分解为特定频率的

随机推荐

  • 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 菜单编辑器 常见