MATLAB 绘制动态图片教程.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
MATLAB 绘制动态图片教程 在本篇文章中,我们将探讨如何使用 MATLAB 绘制动态图片。MATLAB 是一个功能强大的计算软件,除了强大的矩阵运算和仿真分析外,绘图功能也是相当强大的。静态画图没什么问题,但是想要动态的画图,并且能够很好的在 GUI 中得到控制,却不是一件很容易的事情。下面我们将总结几种方法来实现动态图片绘制。 一、AXIS 移动坐标系方法 这种方法是最简单的一种方法,适合于数据已经全部生成的场合。首先画图,然后移动坐标轴。实例代码如下: ```matlab t=0:0.1:100*pi; m=sin(t); plot(t,m); x=-2*pi; axis([x,x+4*pi,-2,2]); grid on; while 1 if x>max(t) break; end x=x+0.1; axis([x,x+4*pi,-2,2]); pause(0.1); end ``` 这种方法非常简单,但是它只能用于数据已经全部生成的场合。如果数据是即时生成的,那么这种方法就不适用。 二、Hold On 模式 这种方法比较原始,适合于即时数据。原理是先画上一帧,然后保留原始图像,追加下一幀图像。这种方式比较繁琐,涉及画图细节,并且没有完整并连续的 Line 对象数据。 ```matlab hold off t=0; m=0; t1=[0 0.1]; m1=[sin(t1);cos(t1)]; p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5); x=-1.5*pi; axis([x x+2*pi -1.5 1.5]); grid on; for i=1:100 hold on t=0.1*i; m=t-floor(t); t1=t1+0.1; m1=[sin(t1);cos(t1)]; p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5); x=x+0.1; axis([x x+2*pi -1.5 1.5]); pause(0.01); end ``` 这种方法可以用于即时数据,但是它的效率不是很高,并且画图细节比较繁琐。 三、Plot 背景擦除模式 这种模式比较适合画动画,效率比较高,刷新闪烁小,适合即时数据。了解此方法之前要搞清楚 Plot 函数的原型是什么:Plot 函数,输入为 X-Y (-X)坐标元组、以及“属性”-“值对,输出为一个列向量(每条曲线岁对应的 Line 结构 Handle,每一行代表一个 线条的 handles)。如果你画了 2 条线,那么会返回 2×1 的向量。 ```matlab t=0; m=0; p = plot(t,m,'*',...'EraseMode','background','MarkerSize',5); x=-1.5*pi; axis([x x+2*pi -1.5 1.5]); grid on; for i=1:1000 t=0.1*i; m=sin(0.1*i); set(p,'XData',t,'YData',m); x=x+0.1; drawnow axis([x x+2*pi -1.5 1.5]); pause(0.1); end ``` 这种方法可以用于即时数据,并且可以实现动态的改变坐标系。 我们可以使用不同的方法来实现动态图片绘制。每种方法都有其优缺,选择哪种方法取决于具体的需求。如果你需要在 GUI 中实现动态图片绘制,那么请使用 Timer 来完成这件事情。Timer 是 MATLAB 中实现多线程唯一方法。
- 粉丝: 1w+
- 资源: 6万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- new_bird_c-c语言入门
- christmasTree-圣诞树html网页代码
- working-shell脚本入门——流程控制
- hadoop_install-sqoop数据导入
- ThinkCMF-mysql安装
- BigData-Notes-sqoop的安装与配置
- C语言-leetcode题解之28-implement-strstr.c
- C语言-leetcode题解之27-remove-element.c
- C语言-leetcode题解之26-remove-duplicates-from-sorted-array.c
- C语言-leetcode题解之24-swap-nodes-in-pairs.c