Matlab實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)顯示方法
對(duì)于真實(shí)系統(tǒng)或者仿真平臺(tái),數(shù)據(jù)是增量式的產(chǎn)生的。Matlab除了強(qiáng)大的矩陣運(yùn)算外,還具有強(qiáng)大的數(shù)據(jù)可視化庫(kù)。由于靜態(tài)畫(huà)圖的方法較多,本文只針對(duì)增量式數(shù)據(jù)流的動(dòng)態(tài)顯示。本文主要介紹幾種Matlab實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)顯示方法。方法主要有兩種:
hold on
set函數(shù)與drawnow函數(shù)組合
hold on 方法
1. 方法介紹
此種方法比較原始,適合于即時(shí)數(shù)據(jù),原理是先畫(huà)上一幀,接著保留原始圖像,追加下一幀圖像,此種方式比較繁瑣,涉及畫(huà)圖細(xì)節(jié),并且沒(méi)有完整并連續(xù)的Line對(duì)象數(shù)據(jù)。此種方法需要注意的地方是,若想生成連續(xù)的線圖,則每次plot至少兩個(gè)點(diǎn),原理大家都應(yīng)該理解,兩點(diǎn)一線嘛!如果想每次一個(gè)點(diǎn)增量式的畫(huà)圖,則線型選擇'.'。
2. 代碼與圖例
t=0; m=0; t1=[0 0.1]; %若為'-'至少同時(shí)輸入兩個(gè)點(diǎn),兩點(diǎn)一線嘛?。?!而'.'則不用 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; %下一個(gè)點(diǎn) m=t-floor(t); 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. 方法介紹
這種模式比較適合畫(huà)動(dòng)畫(huà),效率比較高,刷新閃爍小,適合即時(shí)數(shù)據(jù),最終的Line結(jié)構(gòu)數(shù)據(jù)完整。
了解此方法之前要搞清楚 Plot函數(shù)的原型是什么: 每個(gè)Plot由一個(gè)句柄維護(hù),而可以通過(guò)set函數(shù)對(duì)該句柄對(duì)應(yīng)的plot參數(shù)在線的更新,若在線更新plot的數(shù)據(jù),則可實(shí)現(xiàn)動(dòng)態(tài)顯示的效果。
最后使用drawnow函數(shù)對(duì)plot進(jìn)行刷新。
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

總結(jié)
本文介紹了兩種實(shí)現(xiàn)即時(shí)數(shù)據(jù)可視化的方法。也就是看上去的動(dòng)態(tài)顯示效果。分別給出了兩種方法的原理介紹和示例程序與圖例。相信這兩個(gè)簡(jiǎn)單的例子經(jīng)過(guò)你的運(yùn)用可以變幻出多姿多彩的數(shù)據(jù)可視化效果。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
全排列算法的非遞歸實(shí)現(xiàn)與遞歸實(shí)現(xiàn)的方法(C++)
本篇文章是對(duì)全排列算法的非遞歸實(shí)現(xiàn)與遞歸實(shí)現(xiàn)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C++協(xié)程實(shí)現(xiàn)序列生成器的案例分享
序列生成器通常的實(shí)現(xiàn)是在一個(gè)協(xié)程內(nèi)部通過(guò)某種方式向外部傳一個(gè)值出去,并且將自己掛起,本文圍繞序列生成器這個(gè)經(jīng)典的協(xié)程案例介紹了協(xié)程的銷(xiāo)毀、co_await 運(yùn)算符、await_transform 以及 yield_value 的用法,需要的朋友可以參考下2024-05-05
C/C++使用API實(shí)現(xiàn)數(shù)據(jù)的壓縮與解壓縮
在Windows編程中,經(jīng)常會(huì)遇到需要對(duì)數(shù)據(jù)進(jìn)行壓縮和解壓縮的情況,本文將深入探討使用Windows API進(jìn)行數(shù)據(jù)壓縮與解壓縮的過(guò)程,感興趣的小伙伴可以了解下2023-11-11
淺談c++性能測(cè)試工具之計(jì)算時(shí)間復(fù)雜度
有時(shí)候除了測(cè)量算法的具體性能指數(shù),我們也會(huì)希望測(cè)試出算法的時(shí)間復(fù)雜度,以便我們對(duì)待測(cè)試的算法的性能有一個(gè)更加直觀的了解。本文將介紹c++性能測(cè)試工具之計(jì)算時(shí)間復(fù)雜度。2021-06-06
Qt6遠(yuǎn)程連接MySQL數(shù)據(jù)庫(kù)的簡(jiǎn)單易上手版
在Qt應(yīng)用程序里,可實(shí)現(xiàn)遠(yuǎn)程MySQL服務(wù)器的連接操作,本文就來(lái)介紹一下Qt6遠(yuǎn)程連接MySQL數(shù)據(jù)庫(kù),具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11
C++動(dòng)態(tài)內(nèi)存分配超詳細(xì)講解
給數(shù)組分配多大的空間?你是否和初學(xué)C時(shí)的我一樣,有過(guò)這樣的疑問(wèn)。這一期就來(lái)聊一聊動(dòng)態(tài)內(nèi)存的分配,讀完這篇文章,你可能對(duì)內(nèi)存的分配有一個(gè)更好的理解2022-08-08
Qt私有信號(hào)實(shí)現(xiàn)(private signal)
在使用Qt信號(hào)槽機(jī)制的時(shí)候,有時(shí)候我們需要一個(gè)信號(hào)只能由類內(nèi)發(fā)出,而不允許使用該類對(duì)象的用戶發(fā)出,此時(shí)就需要私有信號(hào)的支持,本文主要介紹了Qt私有信號(hào)實(shí)現(xiàn)(private signal),感興趣的可以了解一下2023-10-10
C++實(shí)現(xiàn)圖片jpg格式變成16位565bmp格式
這篇文章主要為大家詳細(xì)介紹了C++如何實(shí)現(xiàn)圖片jpg格式變成16位565bmp格式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2025-03-03

