Matlab使用Plot函數(shù)實現(xiàn)數(shù)據(jù)動態(tài)顯示方法總結
引子
對于真實系統(tǒng)或者仿真平臺,數(shù)據(jù)是增量式的產(chǎn)生的。Matlab除了強大的矩陣運算外,還具有強大的數(shù)據(jù)可視化庫。由于靜態(tài)畫圖的方法較多,本文只針對增量式數(shù)據(jù)流的動態(tài)顯示。
本文主要介紹幾種Matlab實現(xiàn)數(shù)據(jù)的動態(tài)顯示方法。方法主要有兩種:
hold on 方法
1. 方法介紹
此種方法比較原始,適合于即時數(shù)據(jù),原理是先畫上一幀,接著保留原始圖像,追加下一幀圖像,此種方式比較繁瑣,涉及畫圖細節(jié),并且沒有完整并連續(xù)的Line對象數(shù)據(jù)。此種方法需要注意的地方是,若想生成連續(xù)的線圖,則每次plot至少兩個點,原理大家都應該理解,兩點一線嘛!如果想每次一個點增量式的畫圖,則線型選擇'.'。
2. 代碼與圖例
t=0; t1=[0 0.1]; %若為'-'至少同時輸入兩個點,兩點一線嘛?。?!而'.'則不用 m1=sin(t1); p = plot(t1,m1,'-b','MarkerSize',5); x=-1.5*pi; axis([x x+2*pi -1.5 1.5]); grid on; for i=1:1000 hold on t=0.1*i; %下一個點 t1=t1+0.1; %下一段線 m1=sin(t1); p = plot(t1,m1,'-b','MarkerSize',5); x=x+0.1; axis([x x+2*pi -1.5 1.5]); pause(0.01); end
set函數(shù)與drawnow函數(shù)組合
1. 方法介紹
這種模式比較適合畫動畫,效率比較高,刷新閃爍小,適合即時數(shù)據(jù),最終的Line結構數(shù)據(jù)完整。
了解此方法之前要搞清楚 Plot函數(shù)的原型是什么: 每個Plot由一個句柄維護,而可以通過set函數(shù)對該句柄對應的plot參數(shù)在線的更新,若在線更新plot的數(shù)據(jù),則可實現(xiàn)動態(tài)顯示的效果。
最后使用drawnow函數(shù)對plot進行刷新。
2. 代碼與圖例
t=[0] m=sin(t) 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=[t 0.1*i]; m=[m sin(0.1*i)]; set(p,'XData',t,'YData',m) drawnow x=x+0.1; axis([x x+2*pi -1.5 1.5]); pause(0.01); end
總結
本文介紹了兩種實現(xiàn)即時數(shù)據(jù)可視化的方法。也就是看上去的動態(tài)顯示效果。分別給出了兩種方法的原理介紹和示例程序與圖例。相信這兩個簡單的例子經(jīng)過你的運用可以變幻出多姿多彩的數(shù)據(jù)可視化效果。
到此這篇關于Matlab使用Plot函數(shù)實現(xiàn)數(shù)據(jù)動態(tài)顯示方法總結的文章就介紹到這了,更多相關Matlab Plot數(shù)據(jù)動態(tài)顯示內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
RabbitMQ隊列中間件消息持久化?確認機制?死信隊列原理
這篇文章主要介紹了消息隊列中間件之RabbitMQ消息的持久化、確認機制、死信隊列原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05MyBatisCodeHelper-Pro插件破解版詳細教程[2.8.2]
MyBatisCodeHelper-Pro是IDEA下的一個插件,功能類似mybatis plugin。這篇文章給大家介紹MyBatisCodeHelper-Pro插件破解版[2.8.2]的相關知識,感興趣的朋友跟隨小編一起看看吧2020-09-09