【MATLAB GUI】 4. 坐标区和表

看B站up主freexyn的freexyn编程实例视频教程系列36Matlab GUI的学习笔记

文章目录

  • 坐标区

坐标区

任务要求设计一个图像显示界面,根据选定的周期做出相应的sin函数图像

  1. 使用坐标区、弹出式菜单、普通按钮设计页面,弹出式菜单string设置为1、2、3、4代表4个周期,按钮string为“作图”,保存为test4.fig
    在这里插入图片描述

  2. 程序应该写在普通按钮的回调函数中,读取弹出式菜单中的周期数,在坐标区中作图

    在.fig界面右击“作图”按钮-查看回调-callback,定位到.m文件的pushbutton1_Callback

    function pushbutton1_Callback(hObject, eventdata, handles)
    %弹出式菜单中的值和value对应,所以直接使用其value
    value=get(handles.popupmenu1,'value');
    %fplot(funx,funy,tinterval)将在指定区间tinterval之间绘制由x=funx(t)和y=funy(t)定义的曲线
    fplot(handles.axes1,@sin,[0,2*pi*value]);%@函数名,返回function_handle
    title('sin')
    grid on
    
  3. 坐标区是没有回调函数的,只是一个显示图像的工具

  4. 但是坐标区有一个函数ButtonDownFcn(),当点击坐标区会触发这个函数程序的运行,如复制pushbutton1_Callback的代码过来,使得第一次点击坐标区和点击“作图”按钮的效果是一致的,但是第二次第三次点击会看不到绘制出的新图像,因为第一张图像把坐标区覆盖住了

    所以坐标区的图像都是使用另外的按钮来触发

    function axes1_ButtonDownFcn(hObject, eventdata, handles)
    %弹出式菜单中的值和value对应,所以直接使用其value
    value=get(handles.popupmenu1,'value');
    %fplot(funx,funy,tinterval)将在指定区间tinterval之间绘制由x=funx(t)和y=funy(t)定义的曲线
    fplot(handles.axes1,@sin,[0,2*pi*value]);%@函数名,返回function_handle
    title('sin')
    grid on
    

任务要求设计一个信息管理系统,实现数据打开、读取、编辑、存储功能

  1. 使用表、普通按钮、静态文本框设计如下页面,保存为test5.fig

    在这里插入图片描述

  2. 数据处理:准备一个excel表格test5.xlsx,右键表格,点击“表 属性编辑器”,在列页面,插入列,修改列名称

    在这里插入图片描述

    在这里插入图片描述

  3. 定位到“打开”按钮的回调函数callback

    function pushbutton1_Callback(hObject, eventdata, handles)
    %读取文件夹中的excel数据
    [~,~,data]=xlsread('test5.xlsx');
    set(handles.uitable1,'data',data);
    

    在这里插入图片描述

    此时excel表格里的首行名字也被复制过来了,要想只有数据被复制过来,则

    function pushbutton1_Callback(hObject, eventdata, handles)
    %读取文件夹中的excel数据
    [~,~,data]=xlsread('test5.xlsx');
    **data(1,:)=[];%第一行被设置为空,gui中不显示空行**
    set(handles.uitable1,'data',data);
    

    在这里插入图片描述

  4. 当在运行时可以修改“成绩1”和“成绩2“,点击”保存“按钮,使得excel表格自动同步修改:

    1. 在运行时可以修改“成绩1”和“成绩2“:右键表-查看回调-CellEditCallback,单元格编辑的回调函数,即当运行时修改单元格内容,会调用这个函数

      function uitable1_CellEditCallback(hObject, eventdata, handles)
      % eventdata是一个保留字段,包含以下信息:
      %	Indices: 被编辑单元的行列位置
      %	PreviousData: 被编辑单元的原始数据
      %	EditData: 输入的数据
      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);
      

      在这里插入图片描述

    2. 点击”保存“按钮,excel表格自动同步修改:右键”保存“按钮-查看回调-Callback

      function pushbutton2_Callback(hObject, eventdata, handles)
      %首先获得表格上的数据
      data=get(handles.uitable1,'data');
      xlswrite('test5_out',data);
      helppdlg('保存完成');
      

      在这里插入图片描述
      在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/698596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux定时清理缓存

1、创建清理缓存脚本2、脚本授权3、创建自动任务4、查看自动任务是否添加成功 1、创建清理缓存脚本 vim cache_clean.sh #!/bin/bash #每天清除一次内存buff/cache缓存 echo "开始清除缓存" sync; #写入硬盘,防止数据丢失 for i in $(seq 3);do sudo sh…

【Linux系统化学习】深入理解匿名管道(pipe)和命名管道(fifo)

目录 进程间通信 进程间通信目的 进程间通信的方式 管道 System V IPC(本地通信) POSIX IPC(网络通信) 管道 什么是管道 匿名管道 匿名管道的创建 匿名管道的使用 匿名管道的四种情况 匿名管道的五种特性 命名管道 …

iOS总体框架介绍和详尽说明

iOS总体框架介绍和详尽说明 一、iOS是什么?1.iOS简述2.iOS界面 二、iOS总体框架介绍和详尽说明1.iOS的框架层级1. 核心操作系统层(Core OS layer)1.1 Accelerate Framework1.2 Core Bluetooth Framework1.3 External Accessory Framework1.4 …

【wails】(4):使用wails做桌面应用开发,整合chatgpt-web项目做前端,进行本地开发,web端也可以连调,使用websocket实现

1,视频地址 【wails】(4):使用wails做桌面应用开发,整合chatgpt-web项目做前端,进行本地开发,web端也可以连调,使用websocket实现 2,演示效果 启动先是报500 错误&#…

Charles小程序抓包(安卓版)

微信小程序/公众号抓包的主流方式 目前有以下几种: 1、WindowsBurpProxifier(配置困难,数据包卡顿) 2、Burp安卓模拟器(模拟器卡顿) 3、BurpCharles(本文测试,抓包完整,放包流畅…

编程语言选择的方法

根据目的选择 理论上说,只要达到目的,选择任何一种编程语言都可以。实际上,只要确定了想要编写的内容和执行环境,就可以在某种程度锁定可以使用的语言的种类。 比如,如果想要创建Windows的桌面应用&…

防御保护第八、九、十、十一天笔记

一、内容安全 1、DFI和DPI技术 --- 深度检测技术 DPI是一种基于应用层的流量检测和控制技术,它会对流量进行拆包,分析包头和应用层的内容,从而识别应用程序和应用程序的内容。这种技术增加了对应用层的分析,识别各种应用&#xf…

Vue学习之响应式基础

声明式响应状态 在组合式API中,推荐使用ref()函数来声明响应式状态: Import{ref} from vueref() 接收参数,并将其包裹在一个带有 .value 属性的 ref 对象中返回: Const countref(0) Console.log(count)//{value:0} Console.log…

【2024.02.22】定时执行专家 V7.0 发布 - TimingExecutor V7.0 Release - 龙年春节重大更新版本

目录 ▉ 新版本 V7.0 下载地址 ▉ V7.0 新功能 ▼2024-02-21 V7.0 - 更新日志▼ ▉ V7.0 新UI设计 ▉ 新版本 V7.0 下载地址 BoomWorks软件的最新版本-CSDN博客文章浏览阅读10w次,点赞9次,收藏41次。▉定时执行专家—毫秒精度、专业级的定时任务执行…

Jenkins2.426邮件通知配置

之前安装的jenkins出现问题了,重新装了jenkins,需要重新配置:Maven,JDK,Allure报告,邮件通知,Extended E-mail Notification等 配置Maven,JDK参考:CICD集合(四):Jenkins…

vue中使用wangEditor富文本编辑器

jsd-2306-vue-01: 教学项目教学项目教学项目教学项目教学项目 2306-vue-baking-teacher: 教学项目教学项目教学项目教学项目 一、脚手架工程中使用富文本编辑器wangEditor 1.通过以下命令 安装wangEditor npm i wangeditor -S 2.在main.js文件中添加以下配置信息 //引入wa…

快别回消息了哥,快手测试开发工程师三面

大家好,我是chowley,进回顾一下之前参加的技术面试 部门:商业化 时间:50min 平台:轻雀,这平台纯nt,用Mac面试,麦克风老连我iPhone 过程 自我介绍实习经历一实习经历二有用到覆盖…

PYthon:super与类的继承

两种继承方式: Class SubClass(FartherClass):子类可以任意调用父类的成员变量、成员函数,适合单继承,即只继承一个父类。 Super:适合多继承 统一用一种,不要交叉用。 class FooParent(object): def _…

多数pythoneer只知有列表list却不知道python也有array数组

数组和列表 Python中数组和列表是不同的,我敢断言大多数的pythoneer只知道有列表list,却不知道python也有array数组。列表是一个包含不同数据类型的元素集合,而数组是一个只能含相同数据类型的元素集合。 Python的array库是一个提供数组操作…

第七篇【传奇开心果系列】python的文本和语音相互转换库技术点案例示例:Sphinx自动电话系统(IVR)经典案例

传奇开心果博文系列 系列博文目录python的文本和语音相互转换库技术点案例示例系列 博文目录前言一、雏形示例代码二、扩展思路介绍三、Sphinx多语言支持示例代码四、Sphinx和语音合成库集成示例代码五、Sphinx语音识别前自然语言预处理示例代码六、Sphinx语音识别自动电话系统…

echarts 实现x轴文字过长时折行展示

代码如下: this.options {color: ["#0075FF", "#00E2C4", "#FCA884", "#FFCB11"],grid: {top: "25%",bottom: "6%",right: "8%",left: "8%",containLabel: true,},legend: {top…

vscode怎么运行C++的cpp文件

非常简单,点击vscode导航栏的Extensions, 搜索C/C Compile Run安装上即可, 写好 C/C 程序之后,直接使用 F6 一键编译运行就能出结果。

Nestjs框架: 多环境参数配置

多环境配置方案比较:dotenv vs config 1 )dotenv库 npmjs.com/package/dotenv应用广泛,前后端, 解析.env文件,挂载到 process.env 属性上去安装:$ npm i -S dotenv按照官方示例配置在.env文件上配置,对嵌套…

robots.txt 文件规则

robots.txt 是一种用于网站根目录的文本文件,其主要目的在于指示网络爬虫(web crawlers)和其他网页机器人(bots)哪些页面可以抓取,以及哪些页面不应该被抓取。可以看作是网站和搜索引擎机器人之间的一个协议…

[C++] 异常处理机制及使用案例

什么是C异常处理? C 异常处理是一种机制,用于在程序运行过程中处理可能发生的错误或异常情况。当发生异常时,程序会跳出当前的执行流程,并查找能够处理该异常的代码块,执行相应的处理逻辑,从而避免程序崩溃或产生未定…