打印

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

[复制链接]
938|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaoyang9992006|  楼主 | 2018-11-8 21:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过guide 命令启动GUI设计,选择空文工程,绘制如下图界面

我们给滑动条和按钮的回调函数都类似的一个绘图函数plot(x,y)

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


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

a=get(handles.slider1,'Value');
set(handles.text2,'String',a);
axes(handles.axes1);
x=0:0.01/a:pi/6;
y=sin(a*x);
plot(x,y);
我们可以看到第一个按键操作的,我们取x的分辨率是0.01,而参与运算后的分辨率是0.01*a,随着a的增加,实际采样分辨率0.01*a越来越大,所以这样会导致a增加后,绘图会不够光滑。

那么怎么保证实际分辨率维持到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



相关帖子

沙发
gaoyang9992006|  楼主 | 2018-11-8 21:21 | 只看该作者
说明:GUI编程的时候一般创建的空工程会附带一些初始化代码,这些代码你不需要修改,只需要增加自己的按钮,操作框等组件后,操作这些对应的回调函数就行了。

使用特权

评论回复
板凳
gaoyang9992006|  楼主 | 2018-11-8 21:23 | 只看该作者
把这个工程打包发来,供大家学习。不懂的地方可以查看MATLAB的帮助文件。
GUI练习001.rar (21.96 KB)



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:西安公路研究院南京院
简介:主要工作从事监控网络与通信网络设计,以及从事基于嵌入式的通信与控制设备研发。擅长单片机嵌入式系统物联网设备开发,音频功放电路开发。

1957

主题

15903

帖子

207

粉丝