MATLAB R2017a GUI制作详细流程

  • 创建空白的GUI
  • 制作GUI的具体过程
    • 简单加法器
    • 导入EXCEl数据
    • GUI中显示上述数据
    • 弹出式菜单的简要介绍
  • 结束语

创建空白的GUI

  1. 在MATLAB命令行中输入guide
  2. 新建GUI,选择Blank GUI (Default),点击确定后就生成了一个空白的GUI制作界面,如下图所示

图1

制作GUI的具体过程

简单加法器

  1. 可编辑文本拖入界面中
  2. 双击可编辑文本,在String栏中可以修改相应的文字,Tag栏是相当于给每个文本的一个标记,在后面的输入输出环节作用非常大。
  3. 静态文本拖入界面中,双击它,同样可以在String栏中修改文本内容;同理,将按钮拖入界面中,修改其String运行,它的作用相当于运行程序的开关。
  4. 点击菜单栏中的对齐对象,选中界面中的相应组件,调整布局得到如下结果

图2

  1. 前两个可编辑文本为输入,后一个为输出,选中运行,单击鼠标右键,选择查看回调里的Callback,在 pushbuttonX_Callback函数下编写如下语句(这里X表示你具体在运行Tag中设置的是多少)
global a1;
global a2;
global a3;
a1 = str2double(get(handles.edit1,'String'));
a2 = str2double(get(handles.edit2,'String'));
a3 = a1 + a2;
set(handles.edit3,'String',a3);
  1. 在GUI界面中点击菜单栏的运行图形,在前两个可编辑文本中输入数据,点击运行,得到结果如下
    图3
    PS:
    1、其实GUI制作并不复杂,理论上你编写的任何m程序都可以打包成一个GUI,只需要你解决输入参数以及结果输出的问题。
    2、在编写程序时,发现在某个函数A下定义一个全局变量s,想在另一个函数B下使用它,必须在函数B下重新s为全局变量(下文将会继续提到)。

导入EXCEl数据

MATLAB是一款处理数据的利器,在实际过程中,可能需要向GUI中导入数据,下面将详细介绍:

  1. 需要导入的数据如图:

图4

  1. 按钮拖入界面中,修改String导入数据,选中它,单击鼠标右键→查看回调→Callback,在pushbuttonX_Callback函数中编写如下语句。
global sj;
[fname_od,pname_od] = uigetfile('.xlsx','请选择您想导入的数据’);
if fname_od == 0return
end
str = fullfile(pname_od,fname_od);
[num,txt,sj] = xlsread(str);
%下面语句的作用是删除数据第一行
sj(1,:) = [];
sj = cell2mat(sj);
%导入进来的是一个元胞数组,需要转换成矩阵

上述代码中,可以根据自己的实际需求做出相应修改,如文件格式为xls,则在uigetfile中可将xlsx改为xls

GUI中显示上述数据

  1. 在GUI界面中拖入,此时它的Tag应该是uitable1,选中它,单击鼠标右键→查看回调→CreateFcn
  2. 在uitableX_CreateFcn函数输入如下程序:
DATA = {0,0,0,0,0,0}
%表格的初始值
set(hObject,'ColumnName',{'语文','数学','英语','物理’,'化学’,'生物'},'data',DATA,...
'ColumnEditable',true);
%设置表格的栏目名
  1. 在GUI界面中,点击菜单栏中的运行图形,调整布局后,得到如图结果:

图5

  1. 选中运行按钮,点击鼠标右键→查看回调→Callback,继续在pushbuttonX_Callback函数下编写如下语句
global sj;
%此处就是上文中提到的再一次定义全局变量
set(handles.uitable1,'data',sj);
  1. 在GUI界面中,点击运行图形,在可编辑文本中输入数据,单击导入数据按钮,弹出的界面如图

图6

  1. 选择上述数据的EXCEL文件,再点击运行按钮,可以得到如下结果

图7

  1. 上面的步骤虽然只是讲述了如何将数据导入GUI,并通过GUI将原数据导出,但是通过上述方法,你可以对导入的数据进行相关处理后,根据实际的需要将结果输出。

弹出式菜单的简要介绍

下拉菜单是GUI中常见的组件,下面对其使用方法进行相关介绍

  1. 弹出式菜单拖入GUI界面,双击它,在String栏中点击小正方形,在里面输入你需要的内容,如图

图8

  1. 选中弹出式菜单查看回调Callback,在popupmenuX_Callback函数中输入如下代码
global a4;
val = get(handles.popupmenu1,'value');
switch valcase 1a4 = 0;case 2a4 = 5;case 3a4 = 9;case 4a4 = 15;
end
  1. 选中运行查看回调Callback,在 pushbuttonX_Callback函数下编写如下语句
global a1;
global a2;
global a3;
global a4;a1 = str2double(get(handles.edit1,'String'));
a2 = str2double(get(handles.edit2,'String'));
a3 = a1 + a2 + a4;
set(handles.edit3,'String',a3);global sj;
set(handles.uitable1,'data',sj);
  1. 在GUI菜单栏中点击运行图形,在下拉菜单中选择你所要的数据

  2. 在文本中输入数据,并按照上述过程导入你想要处理的数据,点击运行按钮,得到如下结果

图9

结束语

上述内容是自己在做项目的时候,查阅相关资料所总结出来的一些经验。由于能力有限,上述内容难免会有疏漏和错误,欢迎各位大佬批评指正。

MATLAB GUI制作快速入门相关推荐

  1. matlab gui界面边框表头如何设置,MATLAB GUI制作快速入门

    创建空白的GUI 在MATLAB命令行中输入guide 新建GUI,选择Blank GUI (Default),点击确定后就生成了一个空白的GUI制作界面,如下图所示 图1 制作GUI的具体过程 简单 ...

  2. python猜数字1001untitled_如何利用Matlab GUI制作猜数字游戏

    第二堂课布置了一个Mission Impossible:如何利用Matlab GUI制作猜数字游戏 这个任务对很多人来说会非常困难,首先要面对的是 Matlab GUI的机制,这是完全未知的机制,在面 ...

  3. matlab GUI制作拼图小游戏

    matlab GUI制作拼图小游戏 最近帮同学的忙制作一个拼图贴上代码和效果图,以后再详细说明.之前一般找到的拼图游戏都是"推格子"形式的,由于具体的要求,不能应用这种模板. 本人 ...

  4. 数学建模专栏 | 第二篇 :MATLAB 数学建模快速入门

    MATLAB 虽然功能很强大,但上手却很容易,尤其是 R2013a 以后的版本, 使用起来更加容易. 现在使用 MATLAB 的一个理念就是像 Word 一样去使用 MATLAB.本讲将通过一个实例介 ...

  5. ArcGIS符号制作快速入门

    需要的软件环境 1.ArcMap 8+ 2.Font Creator 5.X 二维符号库制作方法 ArcGIS中制作二维符号库的方法可归结为以下四种: 1.基于ArcMap中已有符号制作符号库 2.基 ...

  6. spss22.0统计分析从入门到精通_数据分析最全资料:SPSS/MATLAB/SQL/SAS/EXCEL经典教材+视频教程,快速入门!...

    可以说当今社会数据就是力量.数据分析能力已经成为各个行业必备的技能,如果能熟练掌握数据分析技能,不管是留学申请还是以后的就业,都会是一个很大的加分项. 但是目前国内很少有高校专门开设数据分析课程,想要 ...

  7. Matlab大作业-基于GUI制作图像处理工具箱

    目录 MATLAB的GUI界面设计: MATLAB通过资源管理器导入图片: MATLAB GUI通过文件管理器保存图片: MATLAB利用摄像头进行截图抓拍并导入: 滤波器部分: 判断图像是否已经灰度 ...

  8. 带你从零开始,快速学会 Matlab GUI

    本文来自作者 木木小迷哥 在 GitChat 上分享「Matlab GUI 零基础学员快速入门」,「阅读原文」查看交流实录 「文末高能」 编辑 | 洛肯 Matlab广泛地应用于数学分析.计算.自动控 ...

  9. Unity快速入门之二 GUI Transform 详解

    Unity快速入门之一 3D基础概念.Camera.Canvas RenderMode的几种方式对比_翕翕堂 Unity快速入门之二 GUI Transform 详解_翕翕堂 Unity快速入门之三 ...

最新文章

  1. Spring Mock单元测试
  2. 2020,人工智能和深度学习未来的五大趋势
  3. numpy 修改数组维度
  4. error C2873: “Matrix2r”: 符号不能用在 using 声明中
  5. ajax里拼接标签属性规则,vue 标签属性数据绑定和拼接的实现方法
  6. 《C++ Primer 第五版》第二章(第5小节)——using和typedef,auto和decltype总结
  7. OpenHarmony3.0 编译烧录
  8. Python基础 ( 十 ) —— 面向对象(多态、封装、反射、动态导入)
  9. 树形DP-HDU1561 The more, The Better
  10. javascript去除空格
  11. Java程序员简历书写
  12. 【Python表白代码】“情话都是我抄来的,想说给你听是真的。”情人节快乐~
  13. php 匹配中文和标点符号,php正则匹配标点符号
  14. 技术人最基本投资建议
  15. 虚拟机改IP地址的方式
  16. SessionFactory的用法
  17. 自学方法测试【进行中】
  18. v5行为验证使用介绍(三)- 程序接入流程
  19. 鲲鹏代码迁移工具介绍
  20. 常用的git操作指令

热门文章

  1. 中科大郑烇、杨坚老师《计算机网络-自顶向下方法》课程 第1章 计算机网络和因特网笔记
  2. 视频剪辑软件会声会影2023旗舰版安装和序列号使用激活方法
  3. 如何修改Linux的远程端口
  4. 分布式Redis集群--Cluster架构
  5. Freemark 常用代码总结1
  6. 多城争抢RoboTaxi落地头炮,长沙或将最先胜出?
  7. 图解淘宝10年后台架构演进
  8. 关于流控RTS/CTS ,DTR/DSR的说明
  9. java线程治理法宝一:线程池
  10. join on 的用法