【MATLAB学习笔记——GUI】

article/2025/10/6 17:40:43

Matlab中GUI 学习笔记

虽然打开matlab后提示说GUI后续版本会取消(以后的版本中将会删除 GUIDE。请改用 APPDESIGNER。 ),但是老师布置了matlab GUI实验,所以说还得学习学习,所以记录学习过程,学习笔记。

郭世宇是我大哥

  • Matlab中GUI 学习笔记
        • 第一个案例-------按钮实例
        • 第二个案例-------文本框和编辑框
        • 第三个案例-------简易计算器(文本框、编辑框和按钮)
        • 第四个案例-------信息注册系统(列表框弹出菜单)
        • 第五个案例-------坐标轴("属性value")
        • 第六个案例-------闹钟(复选框)
        • 第七个案例-------表格
        • 第八个案例-------绘制语音信号的时域图和频谱图
        • 第九个案例-------串口test

第一个案例-------按钮实例

只需要将下面代码写在回调函数,就可以实现

s=get(hObject,"string");
set(hObject,"string",num2str(str2num(s)+1));clear all;
close all;

在这里插入图片描述
按下第一个按钮会使得数值加1

第二个案例-------文本框和编辑框

s=get(hObject,"string");
set(handles.text2,"string",s);

在这里插入图片描述
编辑框输入啥,上面的文本框就显示啥

第三个案例-------简易计算器(文本框、编辑框和按钮)

%%0123456789+-/的回调函数
s0=get(handles.text2,'string');
s=get(hObject,'string');
set(handles.text2,'string',[s0,s]);%%乘号的回调函数
s0=get(handles.text2,'string');
set(handles.text2,'string',[s0,'*']);%%清屏的回调函数
set(handles.text2,'string',[]);%%等于号的回调函数
s0=get(handles.text2,'string');
set(handles.text2,'string',num2str(eval(s0)));

在这里插入图片描述

第四个案例-------信息注册系统(列表框弹出菜单)

%%按钮回调函数
xingming=get(handles.edit1,"string");
xingbie=get(handles.popupmenu1,"string");
v1=get(handles.popupmenu1,"value");
suoxuanxingbie=xingbie{v1};banji=get(handles.popupmenu2,"string");
v2=get(handles.popupmenu2,"value");
suoxuanbanji=banji{v2};c={xingming,suoxuanxingbie,suoxuanbanji};
set(handles.listbox1,"string",c);%%列表框回调函数
xinxi=get(hObject,"string");
v=get(hObject,"value");
if v==2if xinxi{2}=='男'xinxi{2}='女';elsexinxi{2}='男';end
end
if v==3if xinxi{3}=='一班'xinxi{3}='二班';elseif xinxi{3}=='二班'xinxi{3}='三班';elsexinxi{3}='一班';end
end
set(hObject,"string",xinxi);

在这里插入图片描述

第五个案例-------坐标轴(“属性value”)

%%按钮的回调函数
v=get(handles.popupmenu1,"value");
fplot(handles.axes1,@sin,[0,2*pi*v]);
title('sin');
grid on;

在这里插入图片描述

第六个案例-------闹钟(复选框)

%%edit1_CreateFcn	编辑框创造时的配置
set(hObject,"string",datestr(now,31));%%获得当前时间的值设置给编辑框的string%%pushbutton2_Callback	按键的回调函数
shedingshijian=datenum(get(handles.edit1,"string"));%获得编辑框设定的值
while 1dangqianshijian=datenum(now);if shedingshijian==dangqianshijianbreak;end
end
helpdlg("时间到了","提示");
v=get(handles.checkbox1,"value");%是否播放音乐
if v==1yinyue=get(handles.pushbutton1,"userdata");dos(yinyue);
end%%复选框的回调函数
v=get(hObject,"value");
if v==1set(handles.pushbutton1,"enable","on");
elseset(handles.pushbutton1,"enable","off");
end%%选择音乐按钮的回调函数
[wenjianmingcheng,lujing]=uigetfile({"*.mp3";"*.wav"},"选择音乐");
set(hObject,"string",wenjianmingcheng);
set(hObject,"userdata",fullfile(lujing,wenjianmingcheng));

在这里插入图片描述

第七个案例-------表格

%%打开按钮的回调函数
[~,~,data]=xlsread("fx36_7");
data(1,:)=[];
set(handles.uitable1,"data",data);%%表格的编辑回调
ind=eventdata.Indices;
pr=eventdata.PreviousData;
ed=eventdata.EditData;
s=['第',num2str(ind(1)),'行第',num2str(ind(2)),'列的数据',num2str(pr),'更改为:',num2str(ed)];
set(handles.text2,"string",s);%%保存按钮的回调函数
data=get(handles.uitable1,"data");
xlswrite("fx36_7_out.xlsx",data);
helpdlg("保存成功郭大大","提示");

在这里插入图片描述

第八个案例-------绘制语音信号的时域图和频谱图

% --- 选择音乐的按钮
function pushbutton1_Callback(hObject, eventdata, handles)
[wenjianmingcheng,lujing]=uigetfile("*.mp3","选择音乐");
global y;				%定义全局变量
global Fs;				%定义全局变量
if isequal(wenjianmingcheng,0)||isequal(lujing,0)errordlg("没有选择语音信号","错误");return;
elseim_1=strcat(lujing,wenjianmingcheng);[y,Fs] = audioread(im_1);y=y(:,1);msgbox("语音信号读取成功","提示","help");set(handles.edit1,"string",im_1);
end% --- 画时域波形的按钮
function pushbutton2_Callback(hObject, eventdata, handles)
%%按钮的回调函数
global y;			%全局变量使用前再申明
axes(handles.axes1);		%%选定坐标轴  
plot(handles.axes1,y); %画出y波形
xlabel("时间");ylabel("幅值");title('原信号时域波形'); % --- 播放按钮
function pushbutton3_Callback(hObject, eventdata, handles)
global y;
global Fs;
sound(y,Fs);% --- 画频谱图的按钮
function pushbutton4_Callback(hObject, eventdata, handles)
global y;
global Fs;
N=length(y);
yy=fftshift(fft(y));
mag=abs(yy);
f=(floor(-(N-1)/2):floor((N-1)/2))/(N-1)*Fs;
axes(handles.axes2);
plot(handles.axes2,f,mag);grid;
xlabel("频率/Hz");ylabel("幅值");title('原信号的幅频图'); 

在这里插入图片描述

第九个案例-------串口test


%%初始化的回调函数            comlist=seriallist("all");%找到活动的端口列表app.serialport.Items=comlist;
%%创建一个属性scom
%%按钮回调函数value = app.Switch.Value;if value=="On"app.STAUSLamp.Color="0.00,1.00,0.00";app.scom=serial(app.serialport.Value);app.scom.BaudRate=str2num(app.serialbaud.Value);app.scom.BytesAvailableFcnMode="byte";app.scom.BytesAvailableFcnCount=2;set(app.scom,"BytesAvailableFcn",{@app.receive});fopen(app.scom);endif value=="Off"app.STAUSLamp.Color="0.00,0.00,0.00";end
%%关闭回调函数scoms=instrfind;stopasync(scoms);fclose(scoms);delete(scoms);delete(app)%%增加一个函数   receive函数%%创建一个属性rubfferfunction results = receive(app,src,event)if app.scom.BytesAvailable>0temp=fread(app.scom,1,"uint16");app.rubffer=[app.rubffer temp];plot(app.ax1,app.buffer,"r");endend

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

相关文章

MATLAB:简单GUI的设计流程

下面来介绍一下关于MATLAB中如何设计个性化GUI界面的流程: 1、首先打开MATLAB软件如下: 2、在 主页下的“新建”选项中选择新建一个图形用户界面(GUI),结果如下: 3、这是我们选择第一个“Blank GUI&#x…

图像处理 Matlab GUI系统(全)

目录 导读 数字图像处理系统 GUI实例设计 总结 【若觉文章质量良好且有用,请别忘了点赞收藏加关注,这将是我继续分享的动力,万分感谢!】 导读 以数字图像处理系统设计为例,介绍GUI系统的设计流程,同时…

MATLAB之GUI界面介绍与搭建

作为图形用户界面(GUI)的小白,先来了解一下GUI界面的内容: MATLAB中常用的是利用guide命令搭建GUI界面。 第一步: 命令行窗口输入>>guide 第二步:弹出GUIDE快速入门窗口,选择新建GUI(同理…

Matlab制作GUI

效果图 图1.主界面 图2.其中一个子界面 具体步骤 1.界面设置 输入guide并选中运行 2.菜单设置(图1上方) 3.背景图片 参考https://blog.csdn.net/leo0308/article/details/82694995 4.界面跳转 在自动生成的Untitled_5_Callback末尾加一句set&am…

Matlab写的第一个GUI程序(程序设计,界面设计)

写在前面:博主用的Matlab版本是2016b,属于旧版本,大概在2019版本开始属于新版本叭,新版本写程序在APP菜单有设计APP这个选项,旧版本的则是在主页的新建选项下有GUI选项 目录 1.新建项目 1.1找到入口 1.2项目模板选择…

Matlab GUI界面设计

摘要:本篇博文基于MATLAB2014a进行GUI设计。 1.启动GUI设计 命令行输入guide,回车。 即可得到下面的对话框,进行相关的选择和设置 点击确定,得到两个文件,一个是.m文件,另一个是.fig文件,需要…

MATLAB(6)GUI应用介绍

目录 GUI编辑器控件属性回调函数 MATLAB常见的控件普通按钮切换按钮可编辑文本字符获取字符显示 复选框单选按钮弹出式菜单滑动条列表框表坐标区 附录各文件共享数据保存获取 GUI编辑器 MATLAB的GUI编辑器在命令行窗口输入“guide”启动,选择模板并点击确定后创建对…

matlab设计GUI可视化界面全方位解析

如何使用matlab设计GUI及导出 一、GUI的基础知识开始生成GUI界面回调函数Handles结构体GUI中的参数传递 二、控件介绍一、普通按钮二、可编辑文本(edit)和静态文本(text)三、单选框(radiobutton)和复选框&a…

matlabGUI入门

matlabGUI入门 前言1 基础知识1.1 函数1.2 数据类型1.3 绘图1.4 其它 2 GUIDE2.1 创建GUI界面2.2 模板选择2.3 控件2.4 对象浏览器2.5 回调函数2.6 属性检查器2.7 数据传输 前言 由窗口、菜单、图标、光标、按键、对话框和文本等各种图形对象组成的用户界面叫作图形用户界面&a…

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;并且创建的连…