MATLAB GUI界面小总结
MATLAB GUI界面小总结
- 新建和运行
- 添加背景图片
- 点击按钮后运行其他程序
- 在坐标区中绘图
- 自动在表格中写入数字
- 弹出式菜单使用方法
- 可编辑文本的数据传递
- msgbox
- 修改GUI名字时的一些问题
这几天做了一点关于matlab GUI界面的一些小小工作,这里主要记录一下小白的学习过程
新建和运行
- 在命令行窗口输入guide来建立一个空白GUI界面,从而会生成一个.fig文件和.m文件
- 运行已建立的GUI界面有两种方式,直接运行相应的.m文件或右键.fig选择在GUIDE中打开
添加背景图片
将自己要添加的背景图片放在相应的文件夹下,如图片1.png
右键.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)
点击按钮后运行其他程序
- 双击按钮,进入Callback函数
- 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时容易出错,且该方法更简单:
假设是要点击按钮后,就在坐标区显示图片
首先双击坐标区,在坐标区检查器中查看该坐标区的Tag(一般为axes1,然后依次排序),这里假设为axes1
双击按钮,进入按钮的Callback函数,写入axes(handles.axes1);之后正常写绘图函数。若要在第二个坐标区(axes2)显示,就在第二个绘图函数前写axes(handles.axes2),如
axes(handles.axes1);plot(x1,y1);axes(handles.axes2);plot(x2,y2);
此时GUI界面就会在两个坐标区分别显示这两条线
自动在表格中写入数字
添加一个表格后,首先双击表格查看表格的Tag,一般为uitable1
在.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);
弹出式菜单使用方法
双击弹出式菜单,在String中输入菜单内容,如
6
5
4
那么弹出式菜单就会有6 5 4这几个选项,顺便查看弹出式菜单的Tag,一般为(popupmenu1)进入弹出式菜单的Callback函数部分。每次选择弹出式菜单内容就会运行该函数下面的内容,在该函数下面写入:
value1 = get(hObject,'Value');all_ports={'6','5','4'};com=all_ports(value1);
其中com就为你选择的内容(6、5、4)
若想要把弹出式菜单中的数字作为一个程序的输入,还是以6、5、4举例:
首先要在.m文件的OpeningFcn函数加入一个handles.value变量,可以设一个默认值,即:handles.value = 6;然后更新guidata(hObject,handles);
在弹出式按钮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名字后,很容易出现一些问题,要对下面的内容逐一修改:
- 直接右键重命名修改.m和.fig的名字;
- 进入.fig 编辑界面,双击空白处,修改检查器中的Name,若添加过背景图片,那么在CreateFcn一栏是有内容的,需要点击小刷子,会弹出一个界面,确定保存。检查其余有小刷子一栏的后面有没有内容,若有,都需要点击小刷子然后确定。
- 双击其余按钮、可编辑文本,检查检查器中有小刷子一栏的后面有没有内容,若有,都需要点击小刷子然后确定。(这应该是为了将.m中程序中对应有名字的地方给自动修改过去)
MATLAB GUI界面小总结相关推荐
- Matlab GUI界面编程小白学习笔记
某个天朗气清的下午,老师给我布置了一个Matlab GUI 界面设计的任务,然后欢天喜地回家结婚去了,留我在美好的假期里继续孤零零地在学校里耕耘.好的,在此先祝贺老师新婚快乐,百年好合.然后咱们开始从 ...
- Matlab GUI界面表格中数据导出到excel文件带标题
Matlab GUI界面表格中的数据导出到excel文件带标题 data=get(handles.uitable1,'Data'); ht={'日期','编号','姓名'}; [filename,pa ...
- MATLAB GUI界面编程——一些细节问题
写在前面的话: 本篇博文主要对自己在进行MATLAB GUI设计时遇到的一些细节问题进行总结,点击下面目录中的相关问题,可以直接跳转至相应位置.另外,需要声明的是,我所使用的MATLAB版本--MAT ...
- matlab中gui界面如何保存为图片,如何保存MATLAB GUI界面中的图片
如何保存MATLAB GUI界面中的图片 代码来源自网络,作者未知,侵删. 原生支持png,bmp,jpg格式.另外自行添加了清晰度比较高的eps格式(荐). 新建一个按钮,按钮的代码如下. 其中第二 ...
- matlab动态文字,matlab GUI界面文字动态显示
matlab GUI界面文字动态显示 mip版 关注:191 答案:2 悬赏:40 解决时间 2021-01-23 14:10 已解决 2021-01-22 15:49 就是在GUI界面点击pu ...
- MATLAB GUI 界面编程——常见问题和解决方法
前言 本篇博客主要对博主自己在做毕设 GUI 设计时遇到的一些细节问题进行总结纪录,点击下面目录中的相关问题,可以直接跳转至相应位置.另外,需要声明的是,我所使用的MATLAB版本--MATLAB R ...
- 基于MATLAB GUI界面的串口小助手
文章目录 序 一.简介 二.步骤 1.创建一个空白GUI界面 2.拖入组件,进行搭建 3.编辑m文件 总结 序 将单片机传感器采集到的数据直接输入MATLAB进行运算分析,不仅适合仿真,在实际测试中, ...
- matlab——GUI界面设计的相关问题
前几天导师让我使用GUI做一个用户界面,学习了一段时间的matlab,但还没有使用过GUI,花了半天的时间补了补课,然后边做边查,这里对我之前不懂的东西做一个总结和记录.其中很多只是我个人的理解,如有 ...
- matlab gui界面边框表头如何设置,MATLAB GUI制作快速入门
创建空白的GUI 在MATLAB命令行中输入guide 新建GUI,选择Blank GUI (Default),点击确定后就生成了一个空白的GUI制作界面,如下图所示 图1 制作GUI的具体过程 简单 ...
最新文章
- Android 中的Json解析工具fastjson 、序列化、反序列化
- [SCOI2015]小凸玩矩阵 (匈牙利+二分)
- spring中@Inject和@Autowired的区别?分别在什么条件下使用呢?
- 场景应用题目常见面试真题详解
- 史无前例,阿里云或将空降 M7 级高管
- git 撤销merge_相见恨晚的 Git 命令动画演示,一看就懂!
- 如何杀死一个已经detached的screen会话?
- python第四章选择题_PythonCrashCourse 第四章习题
- Windows驱动程序开发 - 初识驱动
- java map putall 覆盖_Java HashMap putAll() 方法
- java计算机毕业设计H5乡镇疫情防控系统源码+mysql数据库+系统+lw文档+部署
- 论文总结之任务型对话NLU
- 30条爆笑的程序员梗PHP是最好的语言
- window系统杀死进程方法
- Java中将汉语转成拼音的方法
- 室外无人驾驶挑战赛小结-2019‘恩智浦’杯全国大学生智能车竞赛
- 微型计算机最早出现在第三代计算机中对吗,3月计算机一级试题及答案(2)
- 吴晓灵:大数据与个人征信市场发展
- zemax设计35mm镜头_ZEMAX杂光分析实例
- python语言好不好_《python编程基础》这本书怎么样