matlab 繪制動態(tài)圖片教程

matlab 繪制動態(tài)圖片教程

ID:10219706

大?。?7.50 KB

頁數(shù):6頁

時間:2018-06-12

matlab 繪制動態(tài)圖片教程_第1頁
matlab 繪制動態(tài)圖片教程_第2頁
matlab 繪制動態(tài)圖片教程_第3頁
matlab 繪制動態(tài)圖片教程_第4頁
matlab 繪制動態(tài)圖片教程_第5頁
資源描述:

《matlab 繪制動態(tài)圖片教程》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。

1、MATLAB繪制動態(tài)圖片教程Matlab除了強大的矩陣運算,仿真分析外,繪圖功能也是相當?shù)膹姶?,靜態(tài)畫圖沒什么問題,由于Matlab本身的多線程編程缺陷,想要動態(tài)的畫圖,并且能夠很好的在GUI中得到控制,還不是一件很容易的事情,下面總結(jié)幾種方法。一.AXIS移動坐標系???這種方法是最簡單的一種方法,適合于數(shù)據(jù)已經(jīng)全部生成的場合,先畫圖,然后移動坐標軸。實例代碼如下:%%%先畫好,然后更改坐標系%在命令行中使用Ctrl+C結(jié)束t=0:0.1:100*pi;m=sin(t);plot(t,m);x=-2*pi;axis([x,x+4*pi,-2,2]);g

2、ridonwhile1???ifx>max(t)???????break;???end???x=x+0.1;???axis([x,x+4*pi,-2,2]);%移動坐標系???pause(0.1);end二.HoldOn模式??????????此種方法比較原始,適合于即時數(shù)據(jù),原理是先畫上一幀,接著保留原始圖像,追加下一幀圖像,此種方式比較繁瑣,涉及畫圖細節(jié),并且沒有完整并連續(xù)的Line對象數(shù)據(jù)。??例如:%%%HoldOn法%此種方法只能點,或者分段劃線holdofft=0;m=0;t1=[00.1];%要構(gòu)成序列m1=[sin(t1);cos(t1)

3、];p=plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5);??x=-1.5*pi;axis([xx+2*pi-1.51.5]);gridon;fori=1:100???holdon???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.

4、1;???axis([xx+2*pi-1.51.5]);???pause(0.01);end三.Plot背景擦除模式這種模式比較適合畫動畫,效率比較高,刷新閃爍小,適合即時數(shù)據(jù),最終的Line結(jié)構(gòu)數(shù)據(jù)完整。了解此方法之前要搞清楚Plot函數(shù)的原型是什么:Plot函數(shù),輸入為X-Y(-X)坐標元組、以及“屬性”-“值對,輸出為一個列向量(每條曲線歲對應的Line結(jié)構(gòu)Handle,每一行代表一個線條的handles),每一線條都有XData,YData向量。如果你畫了2條線,那么會返回2×1的向量。重新畫圖不需要重新書寫Plot,只需要刷新圖像即可,使用dr

5、awnow函數(shù)。完整實例如下:1.畫一個點的動畫:%%%采用背景擦除的方法,動態(tài)的劃點,并且動態(tài)改變坐標系%t,m均為一行,并且不能為多行t=0;m=0;p=plot(t,m,'*',...??'EraseMode','background','MarkerSize',5);x=-1.5*pi;axis([xx+2*pi-1.51.5]);gridon;fori=1:1000???t=0.1*i;??????%兩個變量均不追加???m=sin(0.1*i);???set(p,'XData',t,'YData',m)???x=x+0.1;??????dra

6、wnow???axis([xx+2*pi-1.51.5]);???pause(0.1);end2.動態(tài)多條曲線(即時數(shù)據(jù))%%%采用背景擦除的方法,動態(tài)的劃線,并且動態(tài)改變坐標系%多行劃線t=[0]m=[sin(t);cos(t)]p=plot(t,m,...??'EraseMode','background','MarkerSize',5);x=-1.5*pi;axis([xx+2*pi-1.51.5]);gridon;fori=1:1000???t=[t0.1*i];??????????????????%Matrix1*(i+1)???m=[m[si

7、n(0.1*i);cos(0.1*i)]];%Matrix2*(i+1)???set(p(1),'XData',t,'YData',m(1,:))???set(p(2),'XData',t,'YData',m(2,:))??????drawnow???x=x+0.1;??????axis([xx+2*pi-1.51.5]);???pause(0.5);end上面的這幾個畫圖方式的示例只是簡單的for循環(huán),是單線程的,如果是涉及到GUI的編程,那么請使用Timer來完成這件事情,Timer是我在Matlab中實現(xiàn)多線程唯一方法(沒有找到別的方法)。

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。