MATLAB通过GUI绘制正弦波

软件版本: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中绘制一个正弦波图形,我们需要设置角频率\omega,振幅A,初相位\phi,和波形持续时间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运行程序,点击开始绘制,即可绘制波形

 修改对应参数,再点击开始绘制,可更改波形形状

 

  • 5
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Embedded Boy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值