第六講Matlab數據可視化_第1頁
第六講Matlab數據可視化_第2頁
第六講Matlab數據可視化_第3頁
第六講Matlab數據可視化_第4頁
第六講Matlab數據可視化_第5頁
已閱讀5頁,還剩54頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第六講第六講 Matlab 數據數據可視化可視化及其在測繪中應用及其在測繪中應用內容提要1.平面曲線繪制2.符號變量和符號函數3.三維曲線繪制4.三維曲面繪制5.數據可視化在測繪中應用一、平面曲線繪制一、平面曲線繪制 1.單窗口多曲線單窗口多曲線繪圖 figure %默認打開一個窗口,可以省略 t=0:pi/100:2*pi; y1=sin(t);y2=sin(t+0.25);y3=sin(t+0.5); subplot(1,3,1); plot(t,y1);%執行subplot(1,3,1);會自動打開 subplot(1,3,2); plot(t,y2); subplot(1,3,3);

2、plot(t,y3);051 0-1-0 .8-0 .6-0 .4-0 .200 .20 .40 .60 .81051 0-1-0 .8-0 .6-0 .4-0 .200 .20 .40 .60 .81051 0-1-0 .8-0 .6-0 .4-0 .200 .20 .40 .60 .81subplot(3,1,1);%自動打開一個窗口plot(t,y1);subplot(3,1,2);plot(t,y2);subplot(3,1,3);plot(t,y3);原來的窗口里面的圖形沒有啦!01234567-10101234567-10101234567-1012.多窗口多曲線繪圖多窗口多曲線繪

3、圖 figure(n) 創建窗口函數,n為窗 口順序號。t=0:pi/100:2*pi;y1=sin(t);y2=sin(t+0.25);y3=sin(t+0.5);plot(t,y1) 自動出現第一個窗口figure(2)plot(t,y2) 在第二窗口繪圖figure(3)plot(t,y3) 在第三窗口繪圖注意:如果不這樣呢?會咋樣?01234567-1-0.8-0.6-0.4-0.200.20.40.60.8101234567-1-0.8-0.6-0.4-0.200.20.40.60.8101234567-1-0.8-0.6-0.4-0.200.20.40.60.813.圖形加注功能圖

4、形加注功能 若將標題、坐標軸標記、網格線及文字注釋加注到圖形上,常用函數為: title 給圖形加標題標題 xlable 給x軸加標注 ylable 給y軸加標注 text 在圖形指定位置加標注指定位置加標注 gtext 將標注加到圖形任意位置 grid on(off) 打開、關閉坐標網格線 legend 添加圖例 axis 控制坐標軸的刻度注注:也可以直接在figure窗口進行鼠標操作例:t=0:0.1:10;y1=sin(t);y2=cos(t);plot(t,y1,r,t,y2,b-);x=1.7*pi;1.6*pi;y=-0.3;0.8;s=sin(t);cos(t); %定義符號矩陣

5、text(x, y, s); %指定位置加標注title(正弦和余弦曲線);legend(正弦,余弦)xlabel(時間t); ylabel(正弦、余弦);%自動打開gridaxis squaregrid off 注意:axis的用法還有: axis(xmin xmax ymin ymax) 用行向量中 給出的值設定坐標軸的最大和最小值。 如axis (-2 2 0 5) axis equal 將兩坐標軸設為相等 axis on(off) 顯示和關閉坐標軸的標 記、標志 4.繪制函數圖像的函數繪制函數圖像的函數 plot最基本的二維繪圖函數 fplot的調用格式: fplot(funname,

6、 lims) 繪制函數fun在x區間 lims=xmin xmax ymin ymax的函數圖。 fplot(funname, lims, s) 以指定線形繪圖。fplot(sin(x),tan(x),cos(x),2*pi*-1 1 -1 1)-6-4-20246-6-4-202465.常用特殊二維繪圖函數 bar 繪制直方圖 polar 繪制極坐標圖 hist 繪制統計直方圖 rose 繪制統計扇形圖 errorbar 繪制誤差棒圖 area 區域圖 pie 餅圖 scatter 離散點圖 例:繪制極坐標繪圖t=0:2*pi/90:2*pi;y=cos(4*t);polar(t,y) 0.

7、2 0.4 0.6 0.8 13021060240902701203001503301800 x = -1.7 0.2 1.7;y = 0 0.055 0.085 0.180 0.235 0.320 0.460 0.560 0.630 0.640 0.575 0.460 0.295 0.225 0.180 0.070 0.030 0;bar ( x , y ,1 ,b) %每個直方條的寬度是1,默認0.8,大于1會重疊-2-1.5-1-0.500.511.5200.10.20.30.40.50.60.7根據偶然誤差服從 N (0 ,2),可以應用MATLAB繪制出均方差為= 1 ,= 2 的正

8、態分布概率密度函數的誤差分布曲線,具體為x = - 4 0.1 4;y1 = normpdf ( x ,0 ,1) ;y2 = normpdf ( x ,0 ,2) ;hold on %如果你在新畫圖像之后不想覆蓋原圖像就要加上hold onplot(x , y1 , r)plot(x , y2 , b)hold off-4-3-2-10123400.050.10.150.20.250.30.350.4例:繪制直方圖 t=0:0.2:2*pi; y=cos(t); bar(t,y)05101520253035-1-0.8-0.6-0.4-0.200.20.40.60.8100.10.20.30

9、.40.50.60.70.80.9100.10.20.30.40.50.60.70.80.91a=rand(200,1);b=rand(200,1);c=rand(200,1);scatter(a,b,100,c,p) %改一下再繪制XQ測量平差中誤差橢圓的繪制平差后任一待定點坐標平差值可以計算出,而且可計算出 ,據此可計算未知點平差后的坐標,以及誤差橢圓的三要素:長半軸E,短半軸F,極大值方向。function ellipse(x,y,A,B,angle)%參數說明: x,y-橢圓中點的橫縱坐標;A,B-橢圓長短軸;angle-橢圓旋轉角度%該函數可以通過無數個點的繪制,實現任意方向誤差橢圓

10、的繪制。plot(y+A*sin(angle)*cos(0:pi/360:2*pi)+B*cos(angle)*sin(0:pi/360:2*pi), x+A*cos(angle)*cos(0:pi/360:2*pi)-B*sin(angle)*sin(0:pi/360:2*pi);axis(equal);xlabel(x);ylabel(y);title(eclipse); 運行ellipse(400,400,100,50,pi/4)300320340360380400420440460480500340360380400420440460 xyeclipse對某點進行位移觀測,得到8個不同

11、時間的位移值,見下表,試進行傅立葉變換,并作出頻譜圖。表5.1 觀測數據時間k0 1 2 3 4 5 6 7位移f(k) 2.3 3.0 3.8 4.2 5.1 4.5 3.2 1.8 clear load count.txt p=count; t=0:length(p)-1; p1=polyfit(t,p,7); f=polyval(p1,t); subplot(2,2,1); plot(t,p,o,t,f,-); title(原始數據采用多面擬合) xlabel(時間序列) ylabel(沉降值)pval=p-f;subplot(2,2,2) plot(t,pval)title(去除逐勢項

12、后)xlabel(時間序列)ylabel(去除逐勢項后值)ffty=fft(pval);%進行傅里葉變換%計算能量值m=abs(ffty);f=(0:length(t)-1)*20/length(t);%繪出頻域分析結果圖subplot(2,2,3)plot(f,m)title(頻域分析)xlabel(頻率值)ylabel(能量)二、符號變量、符號表達式、符號函數創建符號變量1.生成符號變量例:syms a b x X Y; k=sym(3)k=sym(3); z=sym(c*sqrt(delta)+y*sin(theta); %將字符串表達式變成符號變量 EXPR=a*z*X+(b*x2+k

13、)*Y; %創建符號數學函數說明:前兩條指令定義a b x X Y是符號變量,定義后就可以參加后面的符號計算了。定義了符號變量后,就可以進行符號運算,否則不行 例:用符號變量代表黃金分割比率:rho=sym(1+sqrt(5)/2); rho=sym(1+sqrt(5)/2); % %定義符號表達式定義符號表達式 %下面可以對rho進行各種操作了。f=rho2-rho-1simple(f)simplify(f)simplify和simple是Matlab符號數學工具箱提供的兩個簡化函數,區別如下: simplify的調用格式為:simplify(S);對表達式S進行化簡。 simple是通過對

14、表達式嘗試多種不同的方法(包括simplify)進行化簡,以尋求符號表符號表達式S的最簡形式。例:求矩陣A=a11,a12,a13;a21,a22,a23;a31,a32,a33的行列式值、逆和特征根syms a11 a12 a13 a21 a22 a23 a31 a32 a33;%每個變量間用空格分開!A=a11 a12 a13;a21 a22 a23; a31 a32 a33,DA=det(A),IA=inv(A),EA=eig(A)定義多個符號變量用syms,定義單個可用sym,也可用syms但定義多個不能用sym2.實型和復型符號函數的創建sym命令可以確定符號變量的數學屬性,通過re

15、al選項實現。也就是說,下列指令包含了符號變量x和y,并有附加了數學特性。 x=sym(x,real);y=sym(y,real);或采用更有效的方式定義: syms x y real z=x+i*y; 這意味著表達式f=x2+y2嚴格非負,因此z是一個復變量,可以做如下操作。 conj(x),conj(z) %返回相應變量的共軛復數。 例例1 考察符號變量和數值變量的差別。考察符號變量和數值變量的差別。 在在 MATLAB命令窗口,輸入命令:命令窗口,輸入命令: a=sym(a);b=sym(b);c=sym(c);d=sym(d); %定義定義4個符號變量個符號變量 w=10;x=5;y=

16、-8;z=11; %定義定義4個數值變量個數值變量 A=a,b;c,d %建立符號矩陣建立符號矩陣A B=w,x;y,z %建立數值矩陣建立數值矩陣B det(A) %計算符號矩陣計算符號矩陣A的行列式的行列式 det(B) %計算數值矩陣計算數值矩陣B的行列式的行列式例例2 比較符號常數與數值在代數運算時的差別。比較符號常數與數值在代數運算時的差別。在在 MATLAB命令窗口,輸入命令:命令窗口,輸入命令:pi1=sym(pi);k1=sym(8);k2=sym(2);k3=sym(3); % 定義符號定義符號常數常數pi2=pi; r1=8; r2=2; r3=3; % 定義數值變量定義數

17、值變量sin(pi1/3) % 計算符號表達式值計算符號表達式值 sin(pi2/3) % 計算數值表達式值計算數值表達式值sqrt(k1) % 計算符號表達式值計算符號表達式值sqrt(r1) % 計算數值表達式值計算數值表達式值sqrt(k3+sqrt(k2) % 計算符號表達式值計算符號表達式值sqrt(r3+sqrt(r2) % 計算數值表達式值計算數值表達式值3.符號函數的簡易繪圖函數ezplot的調用格式: ezplot(f) 這里f為包含單個符號變量x 的符號表達式,在x軸的默認范圍 -2*pi 2*pi內繪制f(x)的函數圖 ezplot(f,xmin,xmax) 給定區間 e

18、zplot(f,xmin,xmax,figure(n) 指定 繪圖窗口繪圖。ezplot(sin(x)ezplot(sin(t),cos(t),-4*pi 4*pi,figure(2)-6-4-20246-1-0.500.51xsin(x)-1-0.500.51-0.8-0.6-0.4-0.200.20.40.60.81xyx = sin(x), y = cos(y)三、三維曲線圖繪制plot3 基本的三維圖形指令調用格式:plot3(x,y,z) x,y,z是長度相同的向量plot3(X,Y,Z) X,Y,Z是維數相同的矩陣plot3(x,y,z,s) plot3(x1,y1,z1,s1,

19、x2,y2,z2,s2, )二維圖形的所有基本特性對三維圖形全都適用。定義三維坐標軸大小 axis(xmin xmax ymin ymax zmin zmax ) grid on(off) 繪制三維曲線的網格子圖和多窗口等也可以用到三維圖形中例:繪制三維線圖t=0:pi/50:10*pi;plot3(t,sin(t),cos(t),r:)010203040-1-0.500.51-1-0.500.51四、三維曲面圖繪制1.三維網格線繪圖mesh 三維網格線繪圖函數調用格式: mesh(z) z為nm的矩陣,x與y 坐標為元素的下標 mesh(x,y,z) x, y, z分別為三維空 間的坐標位置

20、例,矩陣的三維網線圖 z=rand(6); 0.8808 0.0729 0.4168 0.7694 0.3775 0.4776 0.3381 0.7101 0.0964 0.6352 0.3826 0.7086 0.1895 0.8791 0.6747 0.8965 0.6876 0.2380 0.7431 0.3594 0.5626 0.8784 0.1217 0.3910 0.7189 0.0899 0.8130 0.4865 0.0768 0.9759 0.8792 0.1610 0.8782 0.1131 0.1433 0.6288 z=round(z) 1 0 0 1 0 0 0 1

21、 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 mesh(z);mesh(z)0246024600.20.40.60.81 2.三維曲面圖surf 三維曲面繪圖函數。三維曲面圖繪制與三維網格圖繪制看起來似乎一樣。但也有區別:網格線圖:線條有顏色,空擋是無色的;曲面圖:線條是黑色的,空擋有顏色(把線條之間的空擋可填充顏色,且可沿z軸按每一網格變化調用格式: surf(x,y,z) 繪制三維曲面圖,x,y,z為圖形坐標向量或矩陣。例:X,Y,Z=peaks(30); %peaks為matlab自動生成的三維測試圖形,產生三個3030

22、元素在-3,3中服從guassian分布的矩陣 surf(X,Y,Z) -202-202-505xyPeaks-4-2024-4-2024-10-50510surfc(X,Y,Z) 帶等高線的曲面圖 X,Y,Z=peaks(30);surfc(X,Y,Z)-4-2024-4-2024-10-50510surfl(X,Y,Z) 被光照射帶陰影的曲面圖X,Y,Z=peaks(30);surfl(X,Y,Z)視角函數: view(az, el) az -方位角;el - 俯視角 省缺值為:az=-37.5; el=30例。觀察不同視角的波峰圖形z=peaks(40);subplot(2,2,1);m

23、esh(z);subplot(2,2,2);mesh(z);view(-15,60);subplot(2,2,3);mesh(z);view(-90,0);subplot(2,2,4);mesh(z);view(-7,-10);0204002040-10010az=-37.5,el=300204002040-10010az=-15,el=6002040-10-50510az=-90,el=00204002040-10010az=-7,el=-10q M M文件函數文件函數(M file function)(M file function)q 內聯函數內聯函數(Inline Function)(

24、Inline Function)q 匿名函數匿名函數(Anonymous Function)(Anonymous Function)自定義函數的三個途徑: q M M文件函數:文件函數:函數文件形式建立的自定義函數也稱為函數文件形式建立的自定義函數也稱為q 定義的一般格式:定義的一般格式: function 輸出形參列表輸出形參列表=函數名函數名(輸入形參列表輸入形參列表) % 注釋說明部分注釋說明部分(可選可選) 函數體語句函數體語句(必須必須)q 例:做如下函數文件:例:做如下函數文件:myfunc.mmyfunc.mfunction y=myfunc(x)function y=myfun

25、c(x) y=x2; y=x2;q myfunc(2) myfunc(2)% %計算在計算在x=2x=2處的函數值處的函數值q ezplot(myfunc)ezplot(myfunc)% % 作函數圖像作函數圖像q fplot(myfunc,-5,5,r) fplot(myfunc,-5,5,r)q % % 注意到:上邊兩個命令中的文件名仍需加單引號注意到:上邊兩個命令中的文件名仍需加單引號M文件函數(M file function)q inlineinline函數也稱為內聯函數或內嵌函數或在線函數函數也稱為內聯函數或內嵌函數或在線函數q 一般格式:一般格式: 函數名函數名=inline(=i

26、nline(函數表達式函數表達式 , , 變量變量1 1 , , 變量變量2 2 ,.,.) )q 例:例: f=inline(x2,x);f=inline(x2,x);% %定義了函數定義了函數f(x)=x2f(x)=x2 f(2) f(2)% %計算在計算在x=2x=2處的函數值處的函數值 ezplot(f); ezplot(f); % % 作函數圖像作函數圖像 fplot(f,0,5,r); fplot(f,0,5,r); % % 注意到:當注意到:當f f是內聯函數時,上邊兩個命令中的是內聯函數時,上邊兩個命令中的f f不再加單引號。不再加單引號。內聯函數(Inline Functio

27、n)q 由由 定義的函數稱為定義的函數稱為匿名函數匿名函數或臨時函數。或臨時函數。 是函數的指是函數的指針針 ,也稱為函數句柄。效率優于,也稱為函數句柄。效率優于inlineinline函數,建議今后用匿函數,建議今后用匿名函數取代名函數取代inlineinline函數。函數。q 一般格式:一般格式:函數句柄函數句柄=(=(輸入變量輸入變量) ) 函數表達式函數表達式q 例:例:q f=(x)x2 f=(x)x2 % %定義了函數定義了函數f(x)=x2f(x)=x2q f(2) f(2)% %計算在計算在x=2x=2處的函數值處的函數值q ezplot(f); ezplot(f); % %

28、作函數圖像作函數圖像q fplot(f,0,5,r); fplot(f,0,5,r);q % % 注意到:當注意到:當f f是匿名函數時,上邊兩個命令中的是匿名函數時,上邊兩個命令中的f f也不再加單引號。也不再加單引號。匿名函數(Anonymous Function)標準正態分布a=randn(1,10000);hist(a,100)hold onx=-5:0.1:5; plot(x,(2*pi)(-1/2)*800*exp(-x.2/2),r)函數優化函數優化尋優函數:尋優函數:fminbnd 單變量函數單變量函數fminsearch 多變量函數多變量函數constr 有約束條件有約束條件無約束條件無約束條件例例1:f(x)=x2+3x

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論