软件版本:MATLAB_R2021b
下载链接:
https://pan.baidu.com/s/1gzbXGpm04gyc3tVAYtAMjQ?pwd=a4z6
提取码:a4z6
1 GUI简介
图形用户界面(Graphical User Interface,GUI)是由窗口、图标、按钮、菜单、文本等控件构成的应用程序界面。GUI可以方便的进行某种技术、方法的演示。MATLAB本身提供的很多服务就是由GUI实现的,比如帮助系统的demo,滤波器设计和分析工具filterDesigner等
2 GUI启动
在MATLAB命令行窗口中输入guide,打开GUI设计界面
(这里系统提示了一个无关紧要的警告,后续再介绍)
3 设计流程
3.1 需求分析
在MATLAB中绘制一个正弦波图形,我们需要设置角频率,振幅A,初相位,和波形持续时间t这些参数,需要一个启动绘图的按钮,和一个绘图区以及标题
参数名称 | 静态文本控件 |
参数赋值 | 可编辑文本控件 |
启动按钮 | 普通按钮控件 |
绘图区 | 坐标区控件 |
3.2 界面布局
先把所需控件布局到GUI设计区的大致位置上
先拖动鼠标选中多个控件(比如一列)
点击工具栏的这个像“串”一样的工具,对界面控件进行布局,使其更加美观
纵向横向都选择居中对齐
重复操作其他控件
3.3 修改控件属性
双击控件,打开检查器,找到对应栏修改属性
名称 | 含义 |
FontSize | 修改控件上文字大小 |
FontUnits | 文字单位,建议选择normalized,这样控件放大缩小时,文字可以等比例放大缩小 |
String | 控件上显示的文字内容 |
Tag | 控件的唯一标识,是编程访问和控制该控件的唯一途径 |
Units | 单位,建议选择normalized,这样GUI页面放大或缩小时,控件会等比例放大缩小 |
编辑控件的tag属性命名(回调函数要用)
角频率 | fre |
振幅 | amp |
初相位 | fai |
时间 | time |
开始绘制 | startplot |
图形窗 | sin |
最终布局如下:
3.4 保存GUI
保存到一个路径中,保存后自动打开.m文件
3.5 编写回调函数
回调函数只需给“开始绘制”按钮编写即可,在GUI设计界面右键“开始绘制”,找到“查看回调”,再点击CallBack,系统自动跳转到.m文件中的对应位置
输入下面的代码
% --- Executes on button press in startplot.
function startplot_Callback(~, ~, handles)
% hObject handle to startplot (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
fre = str2double(get(handles.fre,'string')); %获取正弦波角频率
amp = str2double(get(handles.amp,'string')); %获取正弦波振幅
fai = str2double(get(handles.fai,'string')); %获取正弦波初相位
tim = str2double(get(handles.time,'string'));%获取正弦波时间轴
Fs = fre/(2 * pi) *30; %自适应选择抽样频率
t = 0:1/Fs:tim; %自变量大小,即时间轴大小
xt = amp * sin(fre * t + fai); %正弦函数
axes(handles.sin); %产生图形窗
plot(t,xt); %在图形窗绘制波形
title('正弦信号'); %显示坐标系标题
xlabel('t'); %显示坐标系横轴量纲
4 实验效果
F5运行程序,点击开始绘制,即可绘制波形
修改对应参数,再点击开始绘制,可更改波形形状