MATLAB控制系統(tǒng)仿真課件第三章_第1頁
MATLAB控制系統(tǒng)仿真課件第三章_第2頁
MATLAB控制系統(tǒng)仿真課件第三章_第3頁
MATLAB控制系統(tǒng)仿真課件第三章_第4頁
MATLAB控制系統(tǒng)仿真課件第三章_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第三章數(shù)據(jù)的可視化主要內(nèi)容3.1 數(shù)據(jù)可視化基礎(chǔ)3.2 二維圖形3.3 三維圖形3.4 常用函數(shù)的繪圖3.5 數(shù)據(jù)可視化的其他方面3.1數(shù)據(jù)可視化基礎(chǔ)一、圖形窗口

MATLAB自動(dòng)將圖形畫在圖形窗口上,圖形窗口相對(duì)于命令窗口是獨(dú)立的窗口。圖形窗口的屬性由系統(tǒng)和MATLAB共同控制。當(dāng)沒有圖形窗口時(shí),繪圖命令將新建一個(gè)圖形窗口;當(dāng)已經(jīng)存在一個(gè)或多個(gè)圖形窗口時(shí),一般指定最后一個(gè)圖形窗口作為當(dāng)前圖形命令的輸出窗口。 有關(guān)圖形窗口的函數(shù)介紹:figure

用默認(rèn)的屬性創(chuàng)建新的圖形窗口,并將新創(chuàng)建的窗口 作為當(dāng)前繪圖窗口。3.1數(shù)據(jù)可視化基礎(chǔ)figure('PropertyName',PropertyValue,...)

用指定的屬性創(chuàng)建圖形窗口,并將新創(chuàng)建的窗口作為當(dāng)前繪圖窗口。其中'PropertyName'為屬性名,PropertyValue為'PropertyName'屬性的值。figure(h)

如果整數(shù)h不是某個(gè)已經(jīng)存在的圖形窗口的句柄,則創(chuàng)建新的圖形窗口,并將h指定為新窗口的圖形句柄;如果h是已經(jīng)存在的圖形窗口的句柄,則將圖形句柄為h的圖形窗口設(shè)置為當(dāng)前圖形窗口, 并在屏幕的最前端顯示。3.1數(shù)據(jù)可視化基礎(chǔ)h=figure(...)

創(chuàng)建圖形窗口,并返回其圖形句柄。subplot(m,n,p)

將當(dāng)前圖形窗口分為m行n列個(gè)子窗口,并指定第p個(gè)子窗口為當(dāng)前的繪圖子窗口。子窗口序號(hào)p是按照行優(yōu)先的次序排列的,這點(diǎn)和矩陣是不同的。如果不存在當(dāng)前繪圖窗口,則先創(chuàng)建一個(gè)新的繪圖窗口,然后再劃分子窗口。clf

清除當(dāng)前繪圖窗口內(nèi)的圖形。例3.1.1設(shè)置坐標(biāo)軸和文字標(biāo)注1.添加圖名title(s)

%書寫圖名說明:s為圖名,為字符串,可以是英文或中文。2.添加坐標(biāo)軸名

xlabel(s)

%橫坐標(biāo)軸名

ylabel(s)

%縱坐標(biāo)軸名3.添加文字注釋text(xt,yt,s)

%在圖形的(xt,yt)坐標(biāo)處書寫文字注釋4.添加圖例legend(s,pos) %在指定位置建立圖例legendoff %擦除當(dāng)前圖中的圖例說明:參數(shù)s是圖例中的文字注釋,如果多個(gè)注釋則可以用’s1’,’s2’,…的方式;參數(shù)pos是圖例在圖上位置的指定符,它的取值如表所示。使用grid命令顯示分格線使用box命令顯示坐標(biāo)框坐標(biāo)軸設(shè)置1.axis([xmin,xmax,ymin,ymax])設(shè)定x和y軸的坐標(biāo)值范圍axisequal 橫軸和縱軸的單位刻度相同axissquare 橫縱和縱軸的長(zhǎng)度相同axistight 把數(shù)據(jù)范圍直接設(shè)置為坐標(biāo)值范圍axisimage 采用相同的單位刻度,且坐標(biāo)框緊貼數(shù)據(jù)

2.缺省情況下,Matlab自動(dòng)在坐標(biāo)范圍內(nèi)生成均勻的刻度,用戶可以使用set命令改變刻度值,其使用方法如下:

set(gca,'Xtick',xs,'Ytick',ys)

其中xs和ys分別是橫軸和縱軸的刻度行向量。例:在圖形窗口中添加文字注釋figure(1)xlabel('\fontsize{16}\omega')ylabel('\fontsize{16}y(\omega)')text(0,0,'100')title('\fontsize{20}y(\omega)=\int^{\infty}_{0}y(t)e^{-j\omegat}dt')3.1數(shù)據(jù)可視化基礎(chǔ)二、離散數(shù)據(jù)的準(zhǔn)備

Matlab是根據(jù)離散的數(shù)據(jù)來繪制圖形的,因此調(diào)用繪圖命令前要為繪圖命令準(zhǔn)備離散的繪圖數(shù)據(jù)。1.離散函數(shù) 如果函數(shù)為離散函數(shù),則只需要在自變量區(qū)間內(nèi)取遍所有離散點(diǎn)的值,從而獲得離散的函數(shù)值即可。例:對(duì)于函數(shù),在n=1,2,…,10區(qū)間我們可以用下面語句準(zhǔn)備數(shù)據(jù):n=1:10; %離散的自變量n的值y=1./n+n+n.^2; %離散的函數(shù)值3.1數(shù)據(jù)可視化基礎(chǔ)2、連續(xù)函數(shù) 繪制連續(xù)函數(shù)的曲線,需要對(duì)連續(xù)函數(shù)的自變量取值區(qū)間進(jìn)行離散采樣。采樣間隔越近,數(shù)據(jù)信息就越全面,繪制出的圖形就越接近于連續(xù)函數(shù)。在連續(xù)函數(shù)的自變量區(qū)間取足夠多的離散值,代入連續(xù)函數(shù)中,從而獲取離散的函數(shù)值。例:對(duì)于函數(shù)

在區(qū)間內(nèi)可以按下面語句準(zhǔn)備數(shù)據(jù)x=linspace(0,2*pi,100); %在之間均勻取100個(gè)自變量值y=sin(x)+cos(x);3.1數(shù)據(jù)可視化基礎(chǔ)三、數(shù)據(jù)可視化的基本步驟①準(zhǔn)備繪圖需要的數(shù)據(jù);②指定繪圖的窗口或者區(qū)域;③選擇線型、顏色、數(shù)據(jù)點(diǎn)形狀等繪圖屬性;④調(diào)用基本繪圖命令;⑤坐標(biāo)軸控制,包括顯示范圍、刻度線、比例、網(wǎng)格線;⑥標(biāo)注控制,包括坐標(biāo)軸名稱、標(biāo)題、相應(yīng)文本等。⑦其他更精確的控制,如顏色、視角、剪切和鏤空等。3.2二維圖形Matlab提供了許多繪制二維圖形的函數(shù),它們的函數(shù)名稱不同,但是函數(shù)的參數(shù)定義和plot函數(shù)完全相同,本節(jié)將只介紹plot函數(shù)。

繪制二維圖形的命令表函數(shù)軸的刻度方式loglog縱橫軸均采用對(duì)數(shù)坐標(biāo)semilogx縱軸采用線性坐標(biāo),橫軸采用對(duì)數(shù)坐標(biāo)semilogy縱軸采用對(duì)數(shù)坐標(biāo),橫軸采用線性坐標(biāo)plotyy在圖的左右兩側(cè)分別建立縱坐標(biāo)軸3.2二維圖形一、基本二維繪圖函數(shù)plot

功能:plot是最基本的二維圖形命令,它是以MATLAB的內(nèi)部函數(shù)形式出現(xiàn)的。MATLAB的其他二維函數(shù)中的絕大多數(shù)是以plot為基礎(chǔ)構(gòu)造的繪圖命令。 格式:plot(y),ploy(x,y),plot(x1,y1,x2,y2,…)(1)plot(y)若y為實(shí)向量,則以y的元素為縱坐標(biāo),以相應(yīng)元素下標(biāo)為橫坐標(biāo),繪制連線圖。若y為實(shí)矩陣,則按列繪制每列元素值相對(duì)其下標(biāo)的連線圖,圖中的曲線數(shù)等于矩陣的列數(shù)。若y為復(fù)矩陣,則分別以每列元素的實(shí)部和虛部為縱橫坐標(biāo)繪制多條連線圖。3.2二維圖形(2)ploy(x,y)當(dāng)y和x為同維向量,則以x為橫坐標(biāo)、y為縱坐標(biāo)繪制連線圖。若x為向量,y是有一維和x同維的矩陣,則繪制多條不同顏色的連線圖,曲線的個(gè)數(shù)等于矩陣的另一維,x作為這些曲線的共同橫坐標(biāo)。若x為矩陣,y為向量,情況與上面相同,只是都是以y為共同的縱坐標(biāo)。若x和y為同維實(shí)數(shù)矩陣,則以x、y對(duì)應(yīng)列元素為橫縱坐標(biāo)分別繪制曲線,曲線條數(shù)等于矩陣的列數(shù)。若x和y為復(fù)數(shù)矩陣時(shí),MATLAB將忽略虛數(shù)部分。例:plot()函數(shù)繪圖,數(shù)據(jù)使用示例x=[123];y=[123;359];subplot(1,3,1);plot(x,y);title('x=[123];y=[123;359]')x1=[12];y1=[136;259];subplot(1,3,2);plot(x1,y1);title('x1=[12];y1=[136;259]')x2=[123;234];y2=[136;259];subplot(1,3,3);plot(x2,y2);title('x2=[123;234];y2=[136;259]')3.2二維圖形(3)plot(x1,y1,x2,y2,…)每對(duì)x、y必須符合plot(x,y)中的要求,不同對(duì)之間沒有影響,命令將對(duì)每一對(duì)x,y繪制曲線。以上的三種格式中,輸入?yún)?shù)x,y都可以是表達(dá)式,但表達(dá)式的結(jié)果應(yīng)符合上述格式要求。例3.2.1

3.2二維圖形二、plot函數(shù)的繪圖屬性控制在調(diào)用函數(shù)plot時(shí),可以指定線型、顏色和數(shù)據(jù)點(diǎn)的圖標(biāo),其調(diào)用格式為:

plot(x,y,‘color_linestyle_marker’)參數(shù)color_linestyle_marker為一個(gè)字符串,由顏色、線型、數(shù)據(jù)點(diǎn)的圖標(biāo)組成。 顏色字符定義表字符定義顏色字符定義顏色yyellow(黃)mmagenta(洋紅)ccyan(青)rred(紅)ggreen(綠)bblue(藍(lán))wwhite(白)kblack(黑)3.2二維圖形字符定義線型字符定義線型-實(shí)線(默認(rèn))--虛線:點(diǎn)劃線-.點(diǎn)連線none無線數(shù)據(jù)點(diǎn)標(biāo)記字符定義表字符定義數(shù)據(jù)點(diǎn)標(biāo)記字符定義數(shù)據(jù)點(diǎn)標(biāo)記字符定義數(shù)據(jù)點(diǎn)標(biāo)記+加號(hào)square小正方形.小黑點(diǎn)v勾號(hào)diamond菱形pentagram五角星<

小于號(hào)^反勾號(hào)hexagram六角星*星號(hào)>

大于號(hào)none無標(biāo)記x叉號(hào)o小圓圈

線型字符定義表

例3.2.2例3.2.43.2二維圖形

圖形交互命令

Matlab提供了一些和鼠標(biāo)操作相關(guān)的圖形命令,用戶可以通過這些命令和圖形窗口進(jìn)行交互。1、ginput[x,y]=ginput(n)

用鼠標(biāo)從二維圖形上拾取n個(gè)數(shù)據(jù)點(diǎn)的坐標(biāo)(x,y)[x,y]=ginput

用鼠標(biāo)從二維圖形上拾取多個(gè)數(shù)據(jù)點(diǎn)的坐標(biāo)(x,y),直到輸入回車按鍵。[x,y,button]=ginput(…)

除了返回?cái)?shù)據(jù)點(diǎn)的坐標(biāo)外,button中還返回鼠標(biāo) 或者按鍵信息。1表示鼠標(biāo)左鍵,2表示鼠標(biāo)中間 按鍵,3表示鼠標(biāo)右鍵,ASCII碼表示按鍵的鍵值。3.2二維圖形2、gtext格式:gtext(arg)說明:用鼠標(biāo)把字符串或者字符串細(xì)胞數(shù)組arg放置到圖形上。3、zoom格式:zoomoff 關(guān)閉當(dāng)前圖形的變焦功能zoomon 打開當(dāng)前圖形的變焦功能zoomout 是圖形返回初始尺寸zoom(fact) 設(shè)置變焦因子(每次變焦的倍數(shù)),缺省的變焦因子為2說明:如果圖形在變焦?fàn)顟B(tài)下,用戶可以通過鼠標(biāo)來 放大或者縮小圖形,包括用鼠標(biāo)左鍵放大、用鼠標(biāo)右鍵縮小、用鼠標(biāo)選定顯示范圍等操作。例:在y=sin(x)的圖形中將(π,0)和(2π,0)點(diǎn)的坐標(biāo)取出,并在(2π,0)點(diǎn)寫“2π”字符串。

x=0:0.1:2*pi;plot(x,sin(x))[m,n]=ginput(2) %取兩點(diǎn)坐標(biāo)

%gtext('2\pi') %鼠標(biāo)寫2π例:

zoomon的使用x=[-pi:0.0001:0];n1=rand(size(x))*0.2;n1(15000:31416)=1;y=n1.*(sin(tan(x))-tan(sin(x)));plot(x,y)zoomon

3.3三維圖形一、基本三維圖形的繪圖指令plot3

基本的三維繪圖指令是plot3,其使用方法和plot函數(shù)基本相同。 調(diào)用格式:plot3(X,Y,Z,'s')說明當(dāng)X,Y,Z為同向量組時(shí),繪制以X、Y、Z的元素為x、y、z坐標(biāo)的三維曲線;當(dāng)X,Y,Z為同維數(shù)組時(shí),分別以其對(duì)應(yīng)的列向量元素為x、y、z坐標(biāo)繪制多條三維曲線,曲線的條數(shù)等于矩陣的列數(shù);字符串s表示顏色、線性和點(diǎn)形狀控制,定義同plot;可以使用多組參數(shù)繪圖,每組參數(shù)之間沒有約束關(guān)系,如plot3(x1,y1,z1,x2,y2,z2);plot3主要用來繪制參數(shù)方程決定的三維曲線。例3.3.1:設(shè)某參數(shù)方程組為,試?yán)L制由變量x,y,z確定的三維曲線。3.3三維圖形二、三維網(wǎng)線和曲面三維網(wǎng)線和曲面的繪制比三維曲線要復(fù)雜。這主要表現(xiàn)在數(shù)據(jù)的準(zhǔn)備和三維圖形的色彩、光照、視點(diǎn)和消隱控制。3.3三維圖形1、三維圖形的數(shù)據(jù)準(zhǔn)備一元函數(shù)代表的是二維曲線,自變量的取值僅僅需要提供x軸上離散的采樣點(diǎn),就很容易構(gòu)造離散的函數(shù)采樣點(diǎn)。 二元函數(shù)代表了三維空間的曲面,其中x和y為自變量,

z為函數(shù)值。要繪制這個(gè)曲面,需要同時(shí)準(zhǔn)備自變量x

和y的數(shù)據(jù),而僅知道了x軸的離散采樣點(diǎn)和y軸的 離散采樣點(diǎn),仍無法直接繪制曲面,還要用x軸的采樣 點(diǎn)和y軸的采樣點(diǎn)構(gòu)造出x-y平面的離散采樣點(diǎn)。3.3三維圖形

例如:二元函數(shù)的自變量x的離散值可取1,2,3,自變量y的離散值可取11,12,13,則計(jì)算z值需要代入x和y的坐標(biāo)對(duì)為(1,11)、(1,12)、(1,13)、(2,11)、(2,12)、(2,13)、(3,11)、(3,12)、(3,13),這9組數(shù)據(jù)我們稱為曲面的采樣格點(diǎn)矩陣,如圖所示,圖中“*”標(biāo)記的點(diǎn)即是x-y平面的采樣點(diǎn)。生成采樣格點(diǎn)矩陣的函數(shù),調(diào)用格式如下:[X,Y]=meshgrid(x,y)其中x和y分別是橫軸和縱軸的離散采樣點(diǎn),X和Y是生成的采樣格點(diǎn)矩陣的橫坐標(biāo)向量和縱坐標(biāo)向量。3.3三維圖形2、三維網(wǎng)線圖三維網(wǎng)線是指繪圖點(diǎn)之間用曲線連接起來。Matlab中繪制網(wǎng)線圖的函數(shù)是mesh。mesh(Z) 用矩陣Z的列、行下標(biāo)作為x軸和y軸變量,畫網(wǎng)線圖mesh(X,Y,Z) 分別用X,Y,Z作為x,y,z軸的坐標(biāo)進(jìn)行繪圖mesh(X,Y,Z,C) 用數(shù)據(jù)X,Y,Z和顏色屬性矩陣C繪圖3、曲面圖 曲面圖是指繪圖點(diǎn)之間用曲面連接起來。繪制曲面圖 的函數(shù)是surf。其調(diào)用格式和mesh函數(shù)完全相同。surf(Z)surf(X,Y,Z,C)

例3.3.2

繪制由函數(shù)在自變量取范圍內(nèi)的網(wǎng)線圖和曲面圖。例3.3.2例:Peak函數(shù)繪制x=linspace(-3,3,200);y=linspace(-3,3,200);[xx,yy]=meshgrid(x,y);%產(chǎn)生200*200的柵格點(diǎn)坐標(biāo)mesh(xx) %查看xx的網(wǎng)線圖mesh(yy)zz=3*(1-xx).^2.*exp(-(xx.^2)-(yy+1).^2)...-10*(xx/5-xx.^3-yy.^5).*exp(-xx.^2-yy.^2)...-1/3*exp(-(xx+1).^2-yy.^2); %產(chǎn)生peaks函數(shù)plot3(xx,yy,zz)%mesh(xx,yy,zz)surf(xx,yy,zz)%meshc為立體網(wǎng)狀圖加等高線;

meshz為立體網(wǎng)狀圖加“圍裙”3.4函數(shù)繪圖的Matlab函數(shù)

繪制連續(xù)函數(shù)的曲線,要為繪圖函數(shù)準(zhǔn)備數(shù)據(jù),這使函數(shù)曲線的繪制工作變得比較麻煩。為了更輕松的實(shí)現(xiàn)函數(shù)的可視化,Matlab提供了一些簡(jiǎn)潔的繪圖指令,應(yīng)用這些指令無需準(zhǔn)備數(shù)據(jù)就直接畫出字符串函數(shù)或者符號(hào)函數(shù)的圖形。這個(gè)系列的函數(shù)名都用“ez”開頭。一、一元函數(shù)的簡(jiǎn)潔繪圖函數(shù)ezplot

格式:ezplot(F,[xmin,xmax])F是字符表達(dá)式、符號(hào)函數(shù)、函數(shù)M文件或者內(nèi)聯(lián)函數(shù), 且只能有一個(gè)自變量。[xmin,xmax]是自變量的取值區(qū)間。如果不指定 自變量取值范圍,Matlab會(huì)根據(jù)函數(shù)自動(dòng)選取自 變量的值。

例3.4.1

繪制在0<t<20區(qū)間的函數(shù)曲線。二、二元函數(shù)的簡(jiǎn)潔繪圖函數(shù)ezsurfezsurf(F,domain,ngrid) 在指定矩形區(qū)域上,用指定格點(diǎn)數(shù)畫二元函數(shù)曲面,domain=[a,b]為自變量取值范圍。ezsurf(F,domain,'circ')

在極坐標(biāo)中繪制二元函數(shù)曲面

3.4函數(shù)繪圖的Matlab函數(shù)F是字符表達(dá)式、符號(hào)函數(shù)、函數(shù)M文件或者內(nèi)聯(lián)函數(shù)。F是二元函數(shù),只能包含2個(gè)自由變量。Matlab會(huì)自動(dòng)按照“子母排序”辨認(rèn)變量次序。建議書寫函數(shù)時(shí)用x和y做自變量。例3.4.2

在極坐標(biāo)系中繪制的圖形3.4函數(shù)繪圖的Matlab函數(shù)3.5數(shù)據(jù)可視化的其他方面一、特殊圖形

Matlab提供了一些常用的特殊圖形的繪制函數(shù),下面僅僅列出相關(guān)函數(shù)名字,使用這些函數(shù)時(shí)參考幫助信息。直方圖 barbar3barhbar3h面積圖 area統(tǒng)計(jì)頻數(shù)直方圖 histrose填色圖 fillfill3火柴桿圖 stemstem3矢量圖compassfeatherquiverquiver3等高線圖clabelcontourcontour3countourf彩帶圖 ribbon3.5數(shù)據(jù)可視化的其他方面二、三維圖形的精細(xì)控制 為了能獲得更好的視覺效果,Matlab提供了對(duì)三維圖形更為精確的控制函數(shù)。下面列出和這些精細(xì)控制有關(guān)的函數(shù)或者命令。透視與消隱:處理被遮蓋在下面的那部分圖形

hidden視點(diǎn)控制:從不同的視角看到的圖形效果view旋轉(zhuǎn):圖形旋轉(zhuǎn)一定角度后的效果

rotate色彩控制:用不同的顏色組顯示圖形

colordefwhitebgcolormapshading3.5數(shù)據(jù)可視化的其他方面照明和材質(zhì)處理:有光源照射、反射時(shí)圖形的效果

light lightingmaterialsurfl透明處理:采用透明化技術(shù)揭示復(fù)雜圖形的內(nèi)部結(jié)構(gòu)

alphaalimalphamap三、圖像 圖像數(shù)據(jù)文件主要保存的是圖像上各個(gè)像素的顏色值,根據(jù)圖像顏色數(shù)的不同,有8位色(256色)圖像、16位色(65535)圖像等。為節(jié)省內(nèi)存,Matlab中定義了unit8和unit16數(shù)據(jù)類型用以保存顏色值,由unit8或者unit16構(gòu)成的矩陣用來保存圖像各個(gè)像素的顏色值,即保存圖像數(shù)據(jù) (8位圖像、16位圖像)。

和圖像顯示和讀取有關(guān)的函數(shù)包括:

imagecolormapimfinfoimreadimwrite3.5數(shù)據(jù)可視化的其他方面例:函數(shù)曲線繪制與檢驗(yàn)繪制函數(shù)x=[-pi:0.05:pi];y=sin(tan(x))-tan(sin(x));plot(x,y)問題:如何檢查曲線?不同的步距,看看能否得出同樣的結(jié)果變步長(zhǎng):在附近用小步長(zhǎng)例

數(shù)據(jù)準(zhǔn)備技巧(條件互斥)

分段函數(shù)x=[-2:0.02:2];y=1.1*sign(x).*(abs(x)>1.1)+x.*(abs(x)<=1.1);plot(x,y)%向量化方法更簡(jiǎn)單的命令——折線plot([-2,-1.1,1.1,2],[-1.1,-1.1,1.1,1.1])

例多縱軸曲線的繪制試?yán)L制曲線x=0:0.01:4*pi;y1=sin(x);y2=0.01*cos(x);plot(x,y1,x,y2,'--‘)若兩條曲線的幅值相差懸殊,調(diào)用雙縱軸繪制函數(shù)plotyy()plotyy(x,y1,x,y2)例

極坐標(biāo)曲線的繪制繪制極坐標(biāo)函數(shù)t=0:0.01:6*pi;r=sin(8*t/3)./(2-cos(3*t/2).^2);

polar(t,r)例以正弦數(shù)據(jù)為例,試在同一窗口的不同區(qū)域用不同的繪圖方式繪制出相應(yīng)的曲線t=0:.2:2*pi;y=sin(t);subplot(2,2,1),stairs(t,y)subplot(2,2,2),stem(t,y)subplot(2,2,3),bar(t,y)subplot(2,2,4),semilogx(t,y)例隱函數(shù)繪制及應(yīng)用ezplot('x^2*sin(x+y^2)+y^2*exp(x+y)+5*cos(x^2+y)',[-10,10])例

空間質(zhì)點(diǎn)的位置繪制試?yán)L制參數(shù)方程t=0:.1:2*pi;x=t.^3.*sin(3*t).*exp(-t);y=t.^3.*cos(3*t).*exp(-t);z=t.^2;plot3(x,y,z),grid繪制動(dòng)態(tài)圖:comet3(x,y,z)closeall;clearall;clc;dbstopiferrora=12;b=9;T0=2*pi;dt=pi/100;%T0是衛(wèi)星軌道周期,f是地球到另一個(gè)焦點(diǎn)的距離t=[0:dt:5*T0];f=sqrt(a^2-b^2);theta=12.5*pi/180;%theta是衛(wèi)星軌道與x,y平面傾角E=exp(-t/20);%E是衛(wèi)星軌道的收縮率x=E.*(a*cos(t)-f);y=E.*(b*cos(theta)*sin(t));z=E.*(b*sin(theta)*sin(t));plot3(x,y,z,'--k','LineWidth',1);holdonsphere(20);axisequal;axis([-15,3,-7,7,-1.5,1.5]);axisofftitle('AsatellitereturnstotheEarth')xlabel('x');ylabel('y');zlabel('z')comet3(x,y,z,0.001);holdoff例:模擬衛(wèi)星返回地球三維曲面中的網(wǎng)格圖與表面圖例:給出二元函數(shù)如下,繪制3D圖形

[x,y]=meshgrid(-3:0.1:3,-2:0.1:2);z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);mesh(x,y,z)%網(wǎng)格圖surf(x,y,z)%表面圖shadingflat;%修飾表面[x,y]=meshgrid(-3:0.1:3,-2:0.1:2);z=1./(sqrt((1-x).^2+y.^2))+1./(sqrt((1+x).^2+y.^2));surf(x,y,z)shadingflat;例:試?yán)L制出二元函數(shù)條狀圖的繪制例:二階控制系統(tǒng)的階躍響應(yīng)zet=0:0.1:1.5;t=[0:0.1:12]';%'與Y匹配Y=[];forzeta=zetG=tf(1,[1,2*zeta,1]);y=step(G,t);Y=[Yy];%15條曲線endribbon(t,Y,0.2)%條狀圖surf(zet,t,Y)視角轉(zhuǎn)換的方法圖形窗口工具欄

定義為方位角

定義為仰角[,]=view(3)讀角度三視圖的繪制例[x,y]=meshgrid(-3:0.1:3,-2:0.1:2);z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);subplot(224),surf(x,y,z),subplot(221),surf(x,y,z),view(0,90);%subplot(222),surf(x,y,z),view(90,0);%subplot(223),surf(x,y,z),view(0,0);%Matlab支持面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,本節(jié)簡(jiǎn)單介紹Matlab中面向?qū)ο缶幊痰幕靖拍詈蛻?yīng)用方法。一、類和對(duì)象類(Class)是一個(gè)抽象的概念,它是具有相同特征和行為的對(duì)象的集合。對(duì)象(Object)是類的具體實(shí)例(Instance),相當(dāng)于類集合中的具體元素。例如:浮點(diǎn)數(shù)double是一個(gè)類,a=0.3定義了浮點(diǎn)數(shù)變量a,a就是浮點(diǎn)數(shù)類的一個(gè)對(duì)象。

Matlab內(nèi)建了5個(gè)類:

char、double、cell、struct、sparse、unit8

可以通過class函數(shù)來獲取變量的數(shù)據(jù)類型,其調(diào)用格式如下:

str=class(v) %返回變量v的數(shù)據(jù)類型名稱面向?qū)ο罄L圖編程實(shí)現(xiàn)二、屬性和方法類中封裝了該類對(duì)象共有的特征和行為。屬性(Property)對(duì)象的特征稱為屬性,用數(shù)據(jù)來表示。對(duì)象的屬性通常用結(jié)構(gòu)體來描述,因此我們?cè)L問對(duì)象的屬性可以象訪問結(jié)構(gòu)體的一樣用成員運(yùn)算符“.”來訪問,也可以用get和set函數(shù)來訪問對(duì)象的屬性。get(h,‘PropertyName’) 返回對(duì)象h的PropertyName屬性的值set(H,'PropertyName',Value,...)

賦值H對(duì)象的PropertyName‘屬性值為Value。方法(Method)對(duì)象的行為稱為方法,用函數(shù)來表示。某個(gè)類的方法只能操作該類的對(duì)象。三、構(gòu)造函數(shù)

Matlab中沒有類的聲明語句。定義對(duì)象要調(diào)用類的構(gòu)造函數(shù)(Constructor)。構(gòu)造函數(shù)的名字必須與類同名,比如cell函數(shù)和struct函數(shù)就分別是細(xì)胞數(shù)組類和結(jié)構(gòu)體數(shù)組類的構(gòu)造函數(shù)。c=cell(3,3);

%調(diào)用構(gòu)造函數(shù)cell建立一個(gè)3×3的細(xì)胞數(shù)組

一些行為具有相同的定義,但實(shí)現(xiàn)方法不同,可以用同樣名稱的方法來描述這些操作,這種技術(shù)稱為重載。被重載的函數(shù)具有相同的名字,但是對(duì)不同對(duì)象操作的時(shí)候表現(xiàn)出來的行為是不同的,調(diào)用的函數(shù)代碼也不同。

重載包括函數(shù)重載和運(yùn)算符重載。例如:乘法運(yùn)算符“*”就被Matlab重載過,分別用來實(shí)現(xiàn)矩陣乘法和傳遞系統(tǒng)的串聯(lián)操作;eig函數(shù)也被重載,用來實(shí)現(xiàn)矩陣和線性時(shí)不變系統(tǒng)的特征值操作。

四、重載五、繼承動(dòng)物類和哺乳動(dòng)物類就是被繼承和繼承的關(guān)系,哺乳動(dòng)物類繼承了動(dòng)物類的一切特征和行為,也就是說動(dòng)物有的特征哺乳動(dòng)物都有,但是哺乳動(dòng)物還有自己特有的特征和行為。這種關(guān)系我們稱為繼承關(guān)系,動(dòng)物類稱為是哺乳動(dòng)物類的父類,哺乳動(dòng)物類稱為是動(dòng)物類的子類。子類會(huì)繼承父類的屬性和方法,同時(shí)還會(huì)有自己的新屬性和新方法。繼承的使用能夠提高代碼的重用性,減少編程工作量。六、建立一個(gè)新類除了Matlab內(nèi)建的類之外,用戶可以根據(jù)實(shí)際應(yīng)用情況創(chuàng)建新類。創(chuàng)建一個(gè)新類的基本工作包括如下方面:

1.創(chuàng)建類目錄在Matlab的搜索路徑上創(chuàng)建一個(gè)子目錄,子目錄的名字為@加上類名,這個(gè)目錄稱為類目錄,該類的代碼就放在類目錄下。

2.創(chuàng)建類的屬性數(shù)據(jù)類的屬性用結(jié)構(gòu)體來表示,抽象出該類共有的特征定義為結(jié)構(gòu)體成員。3.編寫類的構(gòu)造函數(shù)用戶通過調(diào)用和類同名的構(gòu)造函數(shù)來創(chuàng)建類的對(duì)象。4.重載類的顯示函數(shù)display用來實(shí)現(xiàn)Matlab調(diào)用屬于該類的方法

溫馨提示

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

評(píng)論

0/150

提交評(píng)論