matlabGUI入门

article/2025/10/6 5:13:43

matlabGUI入门

  • 前言
  • 1 基础知识
    • 1.1 函数
    • 1.2 数据类型
    • 1.3 绘图
    • 1.4 其它
  • 2 GUIDE
    • 2.1 创建GUI界面
    • 2.2 模板选择
    • 2.3 控件
    • 2.4 对象浏览器
    • 2.5 回调函数
    • 2.6 属性检查器
    • 2.7 数据传输


前言

由窗口、菜单、图标、光标、按键、对话框和文本等各种图形对象组成的用户界面叫作图形用户界面(GUI)。它可以允许用户定制与MATLAB的交互方式,从而命令窗口不再是唯一与MATLAB的交互方式。用户通过鼠标或键盘选择、激活这些图形对象,使计算机产生某种动作或变化。


1 基础知识

1.1 函数

匿名函数

F=(input1,input2...)expr

主函数
一个m文件只有一个主函数

子函数
一个m文件中主函数之外的函数称为子函数

嵌套函数

functionfunctionend
end

私有函数
具有限制性访问权限的函数

重载函数
类似java的重载方法

1.2 数据类型

matlab的基本数据类型是双精度类型和字符型。

数据类型说明字节数
double双精度数据类型8
sparse稀疏矩阵数据类型N/A
single单精度数据类型4
uint8无符号8位整数1
uint16无符号16位整数2
uint32无符号32位整数4
uint64无符号64位整数8
uint8有符号8位整数1
int16有符号16位整数2
int32有符号32位整数4
int64有符号64位整数8

运算符

运算运算符
+a+b
-a-b
*a*b
/a/b
^(. ^)a^b
复数矩阵的(共轭)转置'(. ')A’(A.’)

矩阵和元胞数组

1.3 绘图

二维绘图

plot函数
在这里插入图片描述

xlabel('string'):表示给当前轴对象的x轴贴标签

ylabel('string'):表示给当前轴对象的y轴贴标签

title('string'):表示给当前坐标轴上方居中放置标题

三维绘图
plot3:绘制三维曲线图

stem3:绘制三维枝干图

grid on:打开坐标网络

grid off:关闭坐标网络

hold:在原有图形上添加图形

hold on:保持当前图形窗口内容

hold off:解除当前保持状态

1.4 其它

clc;
%清空命令行窗口
clear;
%清除工作空间所有变量
clear all;
%清除工作空间所有变量和函数
close all;
%关闭图形窗口
save name;
%保存工作空间变量到文件name.mat中
save name.mat xy
%保存工作空间变量x,y到文件name.mat中
load name.mat
%载入name.mat文件中的所有变量到工作空间
load name x y
%载入name.mat文件中的的变量X.y到工作空间

2 GUIDE

GUIDE (graphical user interfaces development environment)是由窗口、光标、按键、菜单、文字说明等对象(objects)构成的一个用户界面。

  • 使用GUIDE编辑器编辑GUI,要分别编辑两个文件:一个是fig文件(.fig),包含了GUI对象的属性设置及其布局信息;另一个是M文件(.m),包含了控制GUI对象执行的回调函数。用户要做的只是两个步骤:GUI对象属性设置与布局、编辑回调函数。
  • 由GUIDE生成的M文件,控制GUI并决定GUI对用户操作的响应。它包含运行GUI所需要的所有代码。GUIDE自动生成M文件的框架,用户在该框架下编写GUI组件的回调函数。M文件由一系列子函数构成,包含主函数、opening函数和回调函数。其中主函数不能修改,否则容易导致GUI界面初始化失败。
  • hObject表示当前回调函数对应的GUI对象句柄,eventdata为附加函数,handles为当前GUI所有的数据的结构体,包含所有GUI对象的句柄和用户定义的数据。
  • gui_mainfcn函数:是GUI默认的处理函数。gui_mainfcn根据gui_state和传入参数来确定是执行回调函数还是打开GUI并运行openingfcn和outputfun。如果gui_callback为空,那么就运行GUI,打开主窗口fig文件;否则gui_callback指定的子函数。

将.fig文件用GUIDE打开便可编辑界面。
可以直接在.m文件中编辑函数。

2.1 创建GUI界面

GUI的打开方式有以下两种:
1、命令方式

guide
%打开设计工作台启动界面。guide file
%在工作台中打开文件名为file的用户界面。

2、菜单方式
在菜单栏中新建图像界面。

保存后会得到两个文件:.fig文件和.m文件。

2.2 模板选择

GUIDE提供了四种模板:
1、空白模板
在这里插入图片描述

2、控件
在这里插入图片描述

3、轴和菜单栏
在这里插入图片描述

4、模态对话框:
在这里插入图片描述

2.3 控件

在这里插入图片描述

按钮:执行某种预定的功能或操作

切换按钮:产生一个动作并指示一个二进制状态(开或关),当鼠标单击它时按钮将下陷,并执行Callback(回调函数)中指定的内容,再次单击,按钮复原,并再次执行Callback中的内容

单选按钮:单个的单选框用来在两种状态之间切换,多个单选框组成一个单选框组时,用户只能在一组状态中选择单一的状态,或称为单选项

复选框:单个的复选框用来在两种状态之间切换,多个复选框组成- -个复选框组时,可使用户在一组状态中做组合式的选择,或称为多选项

可编辑文本:用来使用键盘输人字符串的值,可以对编辑框中的内容进行编辑、删除和替换等操作

静态文本:仅用于显示单行的说明文字

滑块:可输人指定范围的数量值

列表框:在其中定义一系列可供选择的字符串

弹出式菜单:让用户从一列菜单项中选择一项作为参数输人

轴:用于显示图形和图像

2.4 对象浏览器

可以查看所有的对象。

2.5 回调函数

在GUIDE编辑界面选择控件>右击选择查看回调>选择指定的回调函数>跳转到.m文件指定函数编辑区域

CallBack:最常用的回调函数。点击按钮时,按钮下的Callback就会执行;拖动滑块时,滑块名下的callback就会执行。正常用途全放在callback下。

ButtonDownFcn:单击,这个函数名下的代码就会执行。
注:按钮的callback也是点击,会覆盖掉buttondownfcn函数。

CreateFcn:顾名思义,在生成这个控件,显示之前,执行这个函数名下的代码。

DeleteFcr:顾名思义,在控件要销毁,但是被毁灭之前执行这个函数名下的代码。

KeyPressFcr:当前控件获得焦点且有按键按下时执行。

SelectionChangeFcr:在群按钮组件中改变选择时,所执行的函数。

2.6 属性检查器

利用对象属性查看器,可以查看每个对象的属性值,也可以修改、设置对象的属性值。
在这里插入图片描述

2.7 数据传输

global定义全局变量

句柄
handles

传值

a=str2double(get(handles.edit1,'String'));

画图

plot(handles.axes1,x,y);

赋值

set(handles.edit2,'String',a);


http://chatgpt.dhexx.cn/article/tbNn5qDA.shtml

相关文章

matlab gui编程教程,matlab如何使用gui

如何在Matlab中打开GUI工具 两种方法1、输入guide回车。2、在工具栏里点击带笔形的gui。 为Matlab的GUI添加启动画面:添加启动画面,启动画面中可以添加想要添加的图像……VisualC可以实现这个功能,Matlab也可以实现,具体如下&am…

Matlab系列之GUI设计基础

Matlab系列之GUI设计基础 简介编辑界面菜单设计控件设计控件描述个人理解Matlab转译 控件属性【1】外观与行为【2】控件对象的信息【3】回调函数【4】状态信息 结束更多精彩,等你发现~ 简介 GUI即图形用户界面(Graphical User Interface),人…

BERT的get_sequence_output与get_pooled_output方法

BERT的get_sequence_output方法获取token向量是如何得到的? 通过如下方法得到,实际上获取的是encoder端最后一层编码层的特征向量。 BERT的get_pooled_output方法获取的句子向量是如何得到的? 通过如下方法得到,实际上获取的是[…

mybatis 连接池POOLED分析

mybatis提供了三种连接池的配置方式: 配置的位置:主配置文件SqlMapConfig.xml中的dataSource标签,type属性就是表示采用何种连接池方式。 type属性的取值: POOLED 采用传统的javax.sql.DataSource规范中的连接池,…

读论文:Pooled Contextualized Embeddings for Named Entity Recognition

最近在看命名实体识别方向的最新的paper。在这个方向&#xff0c;18年年底有一篇<contextual string embedding for sequence labeling>&#xff0c;在CoNLL03 数据集的F1值超过BERT达到了93.09。做法是弄了个预训练的character_embedding&#xff0c;用character_embedd…

pooled-jms_Hibernate隐藏的宝石:pooled-lo优化器

pooled-jms 介绍 在这篇文章中&#xff0c;我们将揭示一个序列标识符生成器&#xff0c;​​它结合了标识符分配效率和与其他外部系统的互操作性&#xff08;同时访问底层数据库系统&#xff09;。 传统上&#xff0c;有两种序列标识符策略可供选择。 序列标识符&#xff0c;…

idea__MyBatis框架08——连接池(POOLED 跟 UNPOOLED )

一、继续上一节&#xff0c;把一些不用的注释给清理掉&#xff0c;看一下我们的mybatis主配置文件&#xff0c;重点看type。 二、Type详细介绍&#xff1a; mybatis连接池提供了3种方式的配置&#xff1a; type属性就是表示采用何种连接池方式。type属性的取值&#xff1a;POOL…

PODNet: Pooled Outputs Distillation for Small-Tasks Incremental Learning论文详解ECCV2020

ECCV2020 论文地址&#xff1a;https://doi.org/10.1007/978-3-030-58565_6 代码地址&#xff1a;https://github.com/arthurdouillard/incremental learning.pytorch 目录 1.贡献点 2.方法 2.1 pool类型 2.2 POD&#xff08;Pooled Outputs Distillation&#xff09;方…

mybatis数据源(JNDI、POOLED、UNPOOLED)源码详解

一、概述 二、创建 mybatis数据源的创建过程稍微有些曲折。 1. 数据源的创建过程&#xff1b; 2. mybatis支持哪些数据源&#xff0c;也就是dataSource标签的type属性可以写哪些合法的参数&#xff1f; 弄清楚这些问题&#xff0c;对mybatis的整个解析流程就清楚了&#xff0c;…

XAConnectionFactory: failed to create pooled connection - DBMS down or unreachable 的解决方法

问题描述 项目启动出现报错&#xff1a;XAConnectionFactory: failed to create pooled connection - DBMS down or unreachable? 原因分析&#xff1a; Druid连接池问题&#xff0c;当Druid与Atomikos搭配时&#xff0c;如果MySQL版本高于8.0.11则不被支持 查看数据库使用…

没有手动提交事务,Mybatis 的 POOLED 连接池炸了

错误原因&#xff1a; 事务不关&#xff0c;并且非事务交替进行 总的来说&#xff0c;就是先开启了事务连接&#xff0c;未提交或关闭&#xff0c;导致连接池连接全部占满。 此时进行一次非事务连接操作&#xff0c;但是因为此时已经没有可以空闲的连接&#xff0c;并且创建的连…

【Flink】报错 No pooled slot available and request to ResourceManager for new slot failed

文章目录 1.场景11.1 概述1.2 问题1.场景1 1.1 概述 改报错请参考:【Flink】Flink 1.9 升级 到 flink 1.12.4 报错 shaded netty4 AbstractChannel AnnotatedConnectException 错误描述 报错信息: java.util.concurrent.CompletionException:

Oracle 关于Pooled connection request timed out

发生场景&#xff1a; 系统异常卡死&#xff0c;报错&#xff1a; 通过查找日志和业务接口定位&#xff0c;是因为数据库连接池溢出导致链接不上&#xff0c;系统卡死 异常测试代码如下格式&#xff1a; 测试了一个1000次的链接&#xff0c;每次连接都持续30秒&#xff0c;链…

MyBatis POOLED连接池深入了解

往期内容&#xff0c;如下 一、MyBatis简介 二、MyBatis环境搭建 三、MyBatis入门案例 四、MyBatis自定义 五、MyBatis CRUD操作 六、Mybatis中参数和返回值的深入了解 七、MyBatis 配置文件标签 我们在实际开发中都会使用连接池&#xff0c;因为它可以减少我们获取连接所消耗的…

unpooled与pooled

unpooled每次都是重新获取一个连接&#xff0c;底层源码如下 pooled去判断有没有&#xff0c;有就拿出来用&#xff0c;没有就创建新的&#xff0c;每次用完再还回去 mybatis poolde连接池原理 先去看空闲的有没&#xff0c;有就直接用&#xff0c;没有就去活动连接池里把最老…

.NET性能优化-推荐使用Collections.Pooled

简介 性能优化就是如何在保证处理相同数量的请求情况下占用更少的资源&#xff0c;而这个资源一般就是CPU或者内存&#xff0c;当然还有操作系统IO句柄、网络流量、磁盘占用等等。但是绝大多数时候&#xff0c;我们就是在降低CPU和内存的占用率。 之前分享的内容都有一些局限性…

使用 TFDConnection 的 pooled 连接池

使用 TFDConnection 的 pooled 连接池 从开始看到这个属性&#xff0c;就一直认为他可以提供一个连接池管理功能&#xff0c; 苦于文档资料太少&#xff0c; 甚至在帮助中对该属性的使用都没有任何介绍&#xff0c;如果你搜索百度&#xff0c;也会发现基本没资料。 最后终于在…

Mybatis 连接池POOLED

1、连接池&#xff1a; 我们在实际开发中都会使用连接池。 因为它可以减少我们获取连接所消耗的时间。 2、mybatis中的连接池 在 Mybatis 中也有连接池技术&#xff0c;但是它采用的是自己的连接池技术。 在 Mybatis 的 SqlMapConfig.xml 配置文件中&#xff0c;通过来实 现 My…

Mybatis连接池介绍与分类 Mybatis使用POOLED UNPOOLED配置连接池的原理分析

一、连接池 1.概念&#xff1a;其实就是一个容器&#xff08;集合&#xff09;&#xff0c;存放数据库连接的容器。 当系统初始化好后&#xff0c;容器被创建&#xff0c;容器中会申请一些连接对象&#xff0c;当用户来访问数据库时&#xff0c;从容器中获取连接对象&#xf…

阶段3 1.Mybatis_07.Mybatis的连接池及事务_3 mybatis连接池的分类

2、mybatis中的连接池 mybatis连接池提供了3种方式的配置&#xff1a; 配置的位置&#xff1a; 主配置文件SqlMapConfig.xml中的dataSource标签&#xff0c;type属性就是表示采用何种连接池方式。 type属性的取值&#xff1a; POO…