在GUI里看绘图的分辨率设置

[复制链接]
 楼主| gaoyang9992006 发表于 2018-11-8 21:19 | 显示全部楼层 |阅读模式
通过guide 命令启动GUI设计,选择空文工程,绘制如下图界面
451225be43579e05e0.png
我们给滑动条和按钮的回调函数都类似的一个绘图函数plot(x,y)

  1. function pushbutton1_Callback(hObject, eventdata, handles)
  2. axes(handles.axes1);
  3. x=0:0.01:pi/6;
  4. a=get(handles.slider1,'Value');
  5. y=sin(a*x);
  6. plot(x,y);


  7. % --- Executes on slider movement.
  8. function slider1_Callback(hObject, eventdata, handles)

  9. a=get(handles.slider1,'Value');
  10. set(handles.text2,'String',a);
  11. axes(handles.axes1);
  12. x=0:0.01/a:pi/6;
  13. y=sin(a*x);
  14. plot(x,y);
我们可以看到第一个按键操作的,我们取x的分辨率是0.01,而参与运算后的分辨率是0.01*a,随着a的增加,实际采样分辨率0.01*a越来越大,所以这样会导致a增加后,绘图会不够光滑。
318435be4372d94770.png
那么怎么保证实际分辨率维持到0.01呢?
我们注意到0.01*a/a=0.01
因此我们可以让采样的x参数随着a变化。
x=0:0.01/a:pi/6;
当a=1时候,分辨率是0.01
当a=100时候实际分辨率还是0.01


477195be437d5a6efa.png
 楼主| gaoyang9992006 发表于 2018-11-8 21:21 | 显示全部楼层
说明:GUI编程的时候一般创建的空工程会附带一些初始化代码,这些代码你不需要修改,只需要增加自己的按钮,操作框等组件后,操作这些对应的回调函数就行了。
 楼主| gaoyang9992006 发表于 2018-11-8 21:23 | 显示全部楼层
把这个工程打包发来,供大家学习。不懂的地方可以查看MATLAB的帮助文件。
GUI练习001.rar (21.96 KB, 下载次数: 1)



您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

2046

主题

16351

帖子

221

粉丝
快速回复 在线客服 返回列表 返回顶部