【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('保存完成');
      

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

相关推荐

  1. Clickhouse MergeTree原理(二)—— 的维护

    2024-02-23 00:06:01       18 阅读
  2. QT的窗口坐标全局坐标

    2024-02-23 00:06:01       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-23 00:06:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-23 00:06:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-23 00:06:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-23 00:06:01       20 阅读

热门阅读

  1. js 数组排序的方式

    2024-02-23 00:06:01       35 阅读
  2. 拉链表的概念设计与实现

    2024-02-23 00:06:01       31 阅读
  3. logbak日志单独打印(方法层级)

    2024-02-23 00:06:01       27 阅读
  4. vue 中 Vue.prototype 详解及使用

    2024-02-23 00:06:01       29 阅读
  5. VueTreeselect 只能选择末级节点

    2024-02-23 00:06:01       26 阅读
  6. Vue源码系列讲解——生命周期篇【二】(new Vue)

    2024-02-23 00:06:01       27 阅读
  7. Oracle数据库批量变更字段类型

    2024-02-23 00:06:01       26 阅读
  8. C# TCP/IP协议

    2024-02-23 00:06:01       28 阅读
  9. 2024年开发踩坑记录

    2024-02-23 00:06:01       21 阅读
  10. C语言技巧总结(自用)

    2024-02-23 00:06:01       29 阅读
  11. Web基础

    Web基础

    2024-02-23 00:06:01      31 阅读
  12. 深入理解Python爬虫的Response对象

    2024-02-23 00:06:01       33 阅读