MATLAB GUI界面小总结

  • 新建和运行
  • 添加背景图片
  • 点击按钮后运行其他程序
  • 在坐标区中绘图
  • 自动在表格中写入数字
  • 弹出式菜单使用方法
  • 可编辑文本的数据传递
  • msgbox
  • 修改GUI名字时的一些问题

这几天做了一点关于matlab GUI界面的一些小小工作,这里主要记录一下小白的学习过程

新建和运行

  1. 在命令行窗口输入guide来建立一个空白GUI界面,从而会生成一个.fig文件和.m文件
  2. 运行已建立的GUI界面有两种方式,直接运行相应的.m文件或右键.fig选择在GUIDE中打开

添加背景图片

  1. 将自己要添加的背景图片放在相应的文件夹下,如图片1.png

  2. 右键.fig选择在GUIDE中打开出现编辑界面,双击空白部分进入背景检查器界面,进入CreateFcn(点击前面的小刷子),在相应部分写入下面代码就好啦。

     function figure1_CreateFcn(hObject, eventdata, handles)% hObject    handle to figure1 (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    empty - handles not created until after all CreateFcns calledha=axes('units','normalized','pos',[0 0 1.0 0.6]);uistack(ha,'down');ii=imread('1.png');image(ii);colormap grayset(ha,'handlevisibility','off','visible','on');
    

ii=imread(‘1.png’)为图片名字,ha=axes(‘units’,‘normalized’,‘pos’,[0 0 1.0 0.6]);pos属性输入想要的图片位置及大小(0~1)

点击按钮后运行其他程序

  1. 双击按钮,进入Callback函数
  2. run name

name为你要运行的.m文件名字,可以是一个.m程序(那么点击按钮后就会自动运行该.m程序),也可以是GUI的.m文件(那么点击按钮后就会弹出这个新的GUI界面)
若要运行的.m程序不在当前目录下,需要添加目录

 addpath xxx

若在当前文件夹的子文件夹1里面,可以直接写成

 addpath .\1

在坐标区中绘图

建议使用axes(handles.axes1);的方法,直接在plot函数前面加上handles.axes1(即plot(handles.axes1,x,y……))当一个gui界面存在好几个坐标区时,且一个坐标区有很多个plot时容易出错,且该方法更简单:
假设是要点击按钮后,就在坐标区显示图片

  1. 首先双击坐标区,在坐标区检查器中查看该坐标区的Tag(一般为axes1,然后依次排序),这里假设为axes1

  2. 双击按钮,进入按钮的Callback函数,写入axes(handles.axes1);之后正常写绘图函数。若要在第二个坐标区(axes2)显示,就在第二个绘图函数前写axes(handles.axes2),如

     axes(handles.axes1);plot(x1,y1);axes(handles.axes2);plot(x2,y2);
    

此时GUI界面就会在两个坐标区分别显示这两条线

自动在表格中写入数字

  1. 添加一个表格后,首先双击表格查看表格的Tag,一般为uitable1

  2. 在.m文件的OpeningFcn函数(打开GUI就会执行该函数下面的内容)下面写入表格内容矩阵a,如下所示(我建的是一个6*6的表格)

     a =       [7,300,30,-20,100,2800;0,290,31,-10,100,2800;0,307,29,5,100,2800;5,302,30.5,10,100,2800; 12,291,30,10,100,2800;30,288,30,25,100,2800;];set(handles.uitable1,'Data',a);guidata(hObject,handles);
    

弹出式菜单使用方法

  1. 双击弹出式菜单,在String中输入菜单内容,如
    6
    5
    4
    那么弹出式菜单就会有6 5 4这几个选项,顺便查看弹出式菜单的Tag,一般为(popupmenu1)

  2. 进入弹出式菜单的Callback函数部分。每次选择弹出式菜单内容就会运行该函数下面的内容,在该函数下面写入:

     value1 = get(hObject,'Value');all_ports={'6','5','4'};com=all_ports(value1);
    

其中com就为你选择的内容(6、5、4)

若想要把弹出式菜单中的数字作为一个程序的输入,还是以6、5、4举例:

  1. 首先要在.m文件的OpeningFcn函数加入一个handles.value变量,可以设一个默认值,即:handles.value = 6;然后更新guidata(hObject,handles);

  2. 在弹出式按钮Callback函数中写入下面代码

     value1 = get(hObject,'Value');all_ports={'6','5','4'};com=all_ports(value1);x = str2double(com);handles =guidata(hObject);handles.value = x;guidata(hObject,handles);
    

与刚才不同的是首先将弹出式按钮的内容数据形式进行了转换str-to-double,然后将其内容赋值给了handle.value
3. 设置全局变量,如

global data
data = handles.value;
run name.m

同样在name.m程序中加入全局变量global data ,就实现了弹出式按钮到.m文件的数据传递

可编辑文本的数据传递

get(handles.edit1,‘String’)为获取可编辑文本edit1的内容,为String格式
set(handles.edit9,‘String’,‘哈哈’)为设置可编辑文本edit9的内容,将其设置为’haha’
同样若要传给.m文件,直接设置global全局变量就好了

msgbox

msgbox内容:

 aa = ['剩余最大航程   ';'导弹杀伤目标的概率';'导弹速度     ';'导弹价值     ';'目标种类     ';'目标价值     ';'目标威胁等级   '];

矩阵为char类型,需要字符个数一样(可用空格代替),否则会报错。

h=msgbox(aa);
set(h,'Position',[500 500 150 150]);% 使用这个语句可以修改msgbox的位置和大小

修改字体大小:

 ah = get(h, 'CurrentAxes');ch = get(ah, 'Children');set(ch, 'FontSize',12);

弹出msgbox可手动调整大小;

 set(h, 'Resize', 'on');

修改GUI名字时的一些问题

修改了GUI名字后,很容易出现一些问题,要对下面的内容逐一修改:

  1. 直接右键重命名修改.m和.fig的名字;
  2. 进入.fig 编辑界面,双击空白处,修改检查器中的Name,若添加过背景图片,那么在CreateFcn一栏是有内容的,需要点击小刷子,会弹出一个界面,确定保存。检查其余有小刷子一栏的后面有没有内容,若有,都需要点击小刷子然后确定。
  3. 双击其余按钮、可编辑文本,检查检查器中有小刷子一栏的后面有没有内容,若有,都需要点击小刷子然后确定。(这应该是为了将.m中程序中对应有名字的地方给自动修改过去)

MATLAB GUI界面小总结相关推荐

  1. Matlab GUI界面编程小白学习笔记

    某个天朗气清的下午,老师给我布置了一个Matlab GUI 界面设计的任务,然后欢天喜地回家结婚去了,留我在美好的假期里继续孤零零地在学校里耕耘.好的,在此先祝贺老师新婚快乐,百年好合.然后咱们开始从 ...

  2. Matlab GUI界面表格中数据导出到excel文件带标题

    Matlab GUI界面表格中的数据导出到excel文件带标题 data=get(handles.uitable1,'Data'); ht={'日期','编号','姓名'}; [filename,pa ...

  3. MATLAB GUI界面编程——一些细节问题

    写在前面的话: 本篇博文主要对自己在进行MATLAB GUI设计时遇到的一些细节问题进行总结,点击下面目录中的相关问题,可以直接跳转至相应位置.另外,需要声明的是,我所使用的MATLAB版本--MAT ...

  4. matlab中gui界面如何保存为图片,如何保存MATLAB GUI界面中的图片

    如何保存MATLAB GUI界面中的图片 代码来源自网络,作者未知,侵删. 原生支持png,bmp,jpg格式.另外自行添加了清晰度比较高的eps格式(荐). 新建一个按钮,按钮的代码如下. 其中第二 ...

  5. matlab动态文字,matlab GUI界面文字动态显示

    matlab GUI界面文字动态显示 mip版  关注:191  答案:2  悬赏:40 解决时间 2021-01-23 14:10 已解决 2021-01-22 15:49 就是在GUI界面点击pu ...

  6. MATLAB GUI 界面编程——常见问题和解决方法

    前言 本篇博客主要对博主自己在做毕设 GUI 设计时遇到的一些细节问题进行总结纪录,点击下面目录中的相关问题,可以直接跳转至相应位置.另外,需要声明的是,我所使用的MATLAB版本--MATLAB R ...

  7. 基于MATLAB GUI界面的串口小助手

    文章目录 序 一.简介 二.步骤 1.创建一个空白GUI界面 2.拖入组件,进行搭建 3.编辑m文件 总结 序 将单片机传感器采集到的数据直接输入MATLAB进行运算分析,不仅适合仿真,在实际测试中, ...

  8. matlab——GUI界面设计的相关问题

    前几天导师让我使用GUI做一个用户界面,学习了一段时间的matlab,但还没有使用过GUI,花了半天的时间补了补课,然后边做边查,这里对我之前不懂的东西做一个总结和记录.其中很多只是我个人的理解,如有 ...

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

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

最新文章

  1. Android 中的Json解析工具fastjson 、序列化、反序列化
  2. [SCOI2015]小凸玩矩阵 (匈牙利+二分)
  3. spring中@Inject和@Autowired的区别?分别在什么条件下使用呢?
  4. 场景应用题目常见面试真题详解
  5. 史无前例,阿里云或将空降 M7 级高管
  6. git 撤销merge_相见恨晚的 Git 命令动画演示,一看就懂!
  7. 如何杀死一个已经detached的screen会话?
  8. python第四章选择题_PythonCrashCourse 第四章习题
  9. Windows驱动程序开发 - 初识驱动
  10. java map putall 覆盖_Java HashMap putAll() 方法
  11. java计算机毕业设计H5乡镇疫情防控系统源码+mysql数据库+系统+lw文档+部署
  12. 论文总结之任务型对话NLU
  13. 30条爆笑的程序员梗PHP是最好的语言
  14. window系统杀死进程方法
  15. Java中将汉语转成拼音的方法
  16. 室外无人驾驶挑战赛小结-2019‘恩智浦’杯全国大学生智能车竞赛
  17. 微型计算机最早出现在第三代计算机中对吗,3月计算机一级试题及答案(2)
  18. 吴晓灵:大数据与个人征信市场发展
  19. zemax设计35mm镜头_ZEMAX杂光分析实例
  20. python语言好不好_《python编程基础》这本书怎么样

热门文章

  1. Davids实操笔记:docker安装使用小米SQL分析工具Soar
  2. 【boost搜索引擎】
  3. oppo reno2 z可以升级鸿蒙吗,OPPO Reno2 Z评测:除了潮流高颜值的外观,还有4800万夜拍四摄...
  4. 2023新年快乐!宏兔大展
  5. jQuery动态生成的元素如何绑定事件
  6. 虚拟机 Centos7 系统配置静态IP使用桥接模式
  7. 如何做好社群运营转化?
  8. 四年级计算机下册美术教案,2015年四年级下册美术教案
  9. mysql按月统计数据
  10. 网络安全咨询合规-APP合规检测