引子
對于真實系統或者仿真平臺,數據是增量式的產生的。Matlab除了強大的矩陣運算外,還具有強大的數據可視化庫。由于靜態畫圖的方法較多,本文只針對增量式數據流的動態顯示。
本文主要介紹幾種Matlab實現數據的動態顯示方法。方法主要有兩種:
hold on 方法
1. 方法介紹
此種方法比較原始,適合于即時數據,原理是先畫上一幀,接著保留原始圖像,追加下一幀圖像,此種方式比較繁瑣,涉及畫圖細節,并且沒有完整并連續的Line對象數據。此種方法需要注意的地方是,若想生成連續的線圖,則每次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函數與drawnow函數組合
1. 方法介紹
這種模式比較適合畫動畫,效率比較高,刷新閃爍小,適合即時數據,最終的Line結構數據完整。
了解此方法之前要搞清楚 Plot函數的原型是什么: 每個Plot由一個句柄維護,而可以通過set函數對該句柄對應的plot參數在線的更新,若在線更新plot的數據,則可實現動態顯示的效果。
最后使用drawnow函數對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

總結
本文介紹了兩種實現即時數據可視化的方法。也就是看上去的動態顯示效果。分別給出了兩種方法的原理介紹和示例程序與圖例。相信這兩個簡單的例子經過你的運用可以變幻出多姿多彩的數據可視化效果。
到此這篇關于Matlab使用Plot函數實現數據動態顯示方法總結的文章就介紹到這了,更多相關Matlab Plot數據動態顯示內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 解決python調用matlab時的一些常見問題
- 如何用Matlab和Python讀取Netcdf文件
- python matlab庫簡單用法講解
- windows下python 3.9 Numpy scipy和matlabplot的安裝教程詳解
- 如何基于matlab相機標定導出xml文件
- Matlab中plot基本用法的具體使用
- Matlab求解數組中的最大值及它所在的具體位置