17. drawnow
18. axis([x x+2*pi -1.5 1.5]); 19. pause(0.1); 20. end 复制代码
2. 动态多条曲线(即时数据)
1. %%
2. %采用背景擦除的方法,动态的划线,并且动态改变坐标系 3. % 多行划线 4. 5. t=[0]
6. m=[sin(t);cos(t)] 7. p = plot(t,m,...
8. 'EraseMode','background','MarkerSize',5); 9. x=-1.5*pi;
10. axis([x x+2*pi -1.5 1.5]); 11. grid on; 12. 13.
14. for i=1:1000
15. t=[t 0.1*i]; %Matrix 1*(i+1) 16. m=[m [sin(0.1*i);cos(0.1*i)]]; %Matrix 2*(i+1) 17. set(p(1),'XData',t,'YData',m(1,:)) 18. set(p(2),'XData',t,'YData',m(2,:)) 19. drawnow 20. x=x+0.1;
21. axis([x x+2*pi -1.5 1.5]); 22. pause(0.5); 23. end 复制代码
上面的这几个画图方式的示例只是简单的for循环,是单线程的,如果是涉及到GUI的编程,那么请使用Timer来完成这件事情,Timer是我在Matlab中实现多线程唯一方法(没有找到别的方法)。