• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MATLAB GUI制作快速入门

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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


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

图2
前两个可编辑文本为输入,后一个为输出,选中运行,单击鼠标右键,选择查看回调里的Callback,在 pushbuttonX_Callback函数下编写如下语句(这里X表示你具体在运行的Tag中设置的是多少)
global a1;(http://www.my516.com)
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
2
3
4
5
6
7
在GUI界面中点击菜单栏的运行图形,在前两个可编辑文本中输入数据,点击运行,得到结果如下

图3

PS:
1、其实GUI制作并不复杂,理论上你编写的任何m程序都可以打包成一个GUI,只需要你解决输入参数以及结果输出的问题。
2、在编写程序时,发现在某个函数A下定义一个全局变量s,想在另一个函数B下使用它,必须在函数B下重新s为全局变量(下文将会继续提到)。
导入EXCEl数据
MATLAB是一款处理数据的利器,在实际过程中,可能需要向GUI中导入数据,下面将详细介绍:

需要导入的数据如图:


图4
将按钮拖入界面中,修改String为导入数据,选中它,单击鼠标右键→查看回调→Callback,在pushbuttonX_Callback函数中编写如下语句。
global sj;
[fname_od,pname_od] = uigetfile(\'.xlsx\',\'请选择您想导入的数据’);
if fname_od == 0
return
end
str = fullfile(pname_od,fname_od);
[num,txt,sj] = xlsread(str);
%下面语句的作用是删除数据第一行
sj(1,:) = [];
sj = cell2mat(sj);
%导入进来的是一个元胞数组,需要转换成矩阵
1
2
3
4
5
6
7
8
9
10
11
上述代码中,可以根据自己的实际需求做出相应修改,如文件格式为xls,则在uigetfile中可将xlsx改为xls

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


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

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


图7
上面的步骤虽然只是讲述了如何将数据导入GUI,并通过GUI将原数据导出,但是通过上述方法,你可以对导入的数据进行相关处理后,根据实际的需要将结果输出。
弹出式菜单的简要介绍
下拉菜单是GUI中常见的组件,下面对其使用方法进行相关介绍

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

图8
选中弹出式菜单→查看回调→Callback,在popupmenuX_Callback函数中输入如下代码
global a4;
val = get(handles.popupmenu1,\'value\');
switch val
case 1
a4 = 0;
case 2
a4 = 5;
case 3
a4 = 9;
case 4
a4 = 15;
end
1
2
3
4
5
6
7
8
9
10
11
12
选中运行→查看回调→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
2
3
4
5
6
7
8
9
10
11
12
在GUI菜单栏中点击运行图形,在下拉菜单中选择你所要的数据

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi用Sender参数实现代码重用发布时间:2022-07-18
下一篇:
尝鲜TurboDelphiforWin32(免费版)(转)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap