語(yǔ)言程序設(shè)計(jì)基礎(chǔ)98課件_第1頁(yè)
語(yǔ)言程序設(shè)計(jì)基礎(chǔ)98課件_第2頁(yè)
語(yǔ)言程序設(shè)計(jì)基礎(chǔ)98課件_第3頁(yè)
語(yǔ)言程序設(shè)計(jì)基礎(chǔ)98課件_第4頁(yè)
語(yǔ)言程序設(shè)計(jì)基礎(chǔ)98課件_第5頁(yè)
已閱讀5頁(yè),還剩68頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第二章 MATLAB 語(yǔ)言程序設(shè)計(jì)基礎(chǔ)MATLAB 語(yǔ)言的簡(jiǎn)潔高效性MATLAB 語(yǔ)言的科學(xué)運(yùn)算功能MATLAB 語(yǔ)言的繪圖功能MATLAB 龐大的工具箱與模塊集MATLAB 強(qiáng)大的動(dòng)態(tài)系統(tǒng)仿真功能 MATLAB 語(yǔ)言是當(dāng)前國(guó)際上自動(dòng)控制領(lǐng)域的首選計(jì)算機(jī)語(yǔ)言,也是很多理工科專業(yè)最適合的計(jì)算機(jī)數(shù)學(xué)語(yǔ)言。通過(guò)學(xué)習(xí)可更深入理解和掌握數(shù)學(xué)問(wèn)題的求解思想,提高求解數(shù)學(xué)問(wèn)題的能力,為今后其他專業(yè)課程的學(xué)習(xí)提供幫助。 MATLAB語(yǔ)言的優(yōu)勢(shì):第二章 MATLAB 語(yǔ)言程序設(shè)計(jì)基礎(chǔ)MATLAB 語(yǔ)言的簡(jiǎn)本章主要內(nèi)容MATLAB 程序設(shè)計(jì)語(yǔ)言基礎(chǔ)基本數(shù)學(xué)運(yùn)算MATLAB語(yǔ)言流程控制MATLAB 函數(shù)的編寫(xiě)二維圖

2、形繪制三維圖形繪制本章主要內(nèi)容MATLAB 程序設(shè)計(jì)語(yǔ)言基礎(chǔ)2.1 MATLAB 程序設(shè)計(jì)語(yǔ)言基礎(chǔ)MATLAB 語(yǔ)言的變量命名規(guī)則是:(1)變量名必須是不含空格的單個(gè)詞;(2)變量名區(qū)分大小寫(xiě);(3)變量名最多不超過(guò)19個(gè)字符;(4)變量名必須以字母打頭,之后可以是 任意字母、數(shù)字或下劃線,變量名中 不允許使用標(biāo)點(diǎn)符號(hào)2.1 MATLAB 程序設(shè)計(jì)語(yǔ)言基礎(chǔ)MATLAB 語(yǔ)言的MATLAB 的保留常量MATLAB 的保留常量數(shù)學(xué)運(yùn)算符號(hào)及標(biāo)點(diǎn)符號(hào)(1)MATLAB的每條命令后,若為逗號(hào)或無(wú)標(biāo)點(diǎn)符號(hào), 則顯示命令的結(jié)果;若命令后為分號(hào),則禁止顯示結(jié)果. (2)“%” 后面所有文字為注釋. (3)

3、“.”表示續(xù)行.數(shù)學(xué)運(yùn)算符號(hào)及標(biāo)點(diǎn)符號(hào)(1)MATLAB的每條命令后,若為逗雙精度數(shù)值變量IEEE標(biāo)準(zhǔn),64位 (占8字節(jié)),11指數(shù)位,53數(shù)值位和一個(gè)符號(hào)位 double( ) 函數(shù)的轉(zhuǎn)換其他數(shù)據(jù)類型uint8( ),無(wú)符號(hào)8位整形數(shù)據(jù)類型,值域?yàn)?至255,常用于圖像表示和處理。(節(jié)省存儲(chǔ)空間,提高處理速度)int8( ), int16( ), int32( ),uint16( ), uint32( )數(shù)值型數(shù)據(jù)結(jié)構(gòu)雙精度數(shù)值變量數(shù)值型數(shù)據(jù)結(jié)構(gòu)符號(hào)型,sym(A), 常用于公式推導(dǎo)、解析解解法 符號(hào)變量聲明 syms var_list var_props 例:syms a b real

4、syms c positive 符號(hào)型數(shù)值可采用變精度函數(shù)求值 vpa(A), 或 vap(A,n) vpa(pi)ans = 3.1415926535897932384626433832795 vpa(pi,60)ans =3.14159265358979323846264338327950288419716939937510582097494符號(hào)型變量數(shù)據(jù)類型符號(hào)型,sym(A), 常用于公式推導(dǎo)、解析解解法符號(hào)型變量字符串型數(shù)據(jù):用單引號(hào)括起來(lái) 。多維數(shù)組:是矩陣的直接擴(kuò)展,多個(gè)下標(biāo)。單元數(shù)組:將不同類型數(shù)據(jù)集成到一個(gè)變量名下面,用表示;例:用Ai,j可表示單元數(shù)組A的第i行,第j列的內(nèi)

5、容。類與對(duì)象:允許用戶自己編寫(xiě)包含各種復(fù)雜詳細(xì)的變量,可以定義傳遞函數(shù)。MATLAB支持的其它數(shù)據(jù)結(jié)構(gòu)MATLAB支持的其它數(shù)據(jù)結(jié)構(gòu)直接賦值語(yǔ)句 賦值變量賦值表達(dá)式 例: a=pi2 a = 9.8696 例:表示矩陣 B=1+9i,2+8i,3+7j;4+6j 5+5i,6+4i;7+3i,8+2j 1iB = 1.0000 + 9.0000i 2.0000 + 8.0000i 3.0000 + 7.0000i 4.0000 + 6.0000i 5.0000 + 5.0000i 6.0000 + 4.0000i 7.0000 + 3.0000i 8.0000 + 2.0000i 0 + 1.

6、0000iMATLAB 的基本語(yǔ)句結(jié)構(gòu)直接賦值語(yǔ)句MATLAB 的基本語(yǔ)句結(jié)構(gòu)函數(shù)調(diào)用語(yǔ)句返回變量列表函數(shù)名(輸入變量列表) 例:a,b,c=my_fun(d,e,f,c)冒號(hào)表達(dá)式 v=s1:s2:s3 該函數(shù)生成一個(gè)行向量v,其中s1是起始值, s2是步長(zhǎng)(若省略步長(zhǎng)為1), s3是最大值。 例:用不同的步距生成 (0,p) 間向量。 v1=0:0.2:piv1 = Columns 1 through 9 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 Columns 10 through 16 1.8000 2.0000

7、 2.2000 2.4000 2.6000 2.8000 3.0000函數(shù)調(diào)用語(yǔ)句 v2=0:-0.1:pi %步距為負(fù),不能生成向量,得出空矩陣v2 = Empty matrix: 1-by-0 v3=0:piv3 = 0 1 2 3 v4=pi:-1:0 逆序排列構(gòu)成新向量v4 = 3.1416 2.1416 1.1416 0.1416 v5=0:0.4:pi,piv5 = 0 0.4000 0.8000 1.2000 1.6000 2.0000 2.4000 2.8000 3.1416 v2=0:-0.1:pi %步距為負(fù),不能生成基本語(yǔ)句格式 B=A(v1,v2) v1、 v2分別表示

8、提取行(列)號(hào)構(gòu)成的向量。例: A=1,2,3,4;3,4,5,6;5,6,7,8;7,8,9,0A = 1 2 3 4 3 4 5 6 5 6 7 8 7 8 9 0 B1=A(1:2:end,:) 提取全部奇數(shù)行、所有列。B1 = 1 2 3 4 5 6 7 8子矩陣提取基本語(yǔ)句格式 B=A(v1,v2)子矩陣提取 B2=A(3,2,1,2,3,4) 提取3,2,1行、2,3,4列構(gòu)成子矩陣。 A =B2 = 1 2 3 4 6 7 8 3 4 5 6 4 5 6 5 6 7 8 2 3 4 7 8 9 0 B3=A(:,end:-1:1) 將A矩陣左右翻轉(zhuǎn),即最后一列排在最前面。B3 =

9、 4 3 2 1 6 5 4 3 8 7 6 5 0 9 8 7 B2=A(3,2,1,2,3,4) 矩陣表示矩陣轉(zhuǎn)置數(shù)學(xué)表示 (若A有復(fù)數(shù)元素,先轉(zhuǎn)置再取各元素共軛復(fù)數(shù)值,Hermit轉(zhuǎn)置)MATLAB 求解 BA. C=A2.2 基本數(shù)學(xué)運(yùn)算矩陣的代數(shù)運(yùn)算矩陣表示2.2 基本數(shù)學(xué)運(yùn)算矩陣的代數(shù)運(yùn)算矩陣加減法 C=A+B D=A-B注意維數(shù)是否相等注意其一為標(biāo)量的情形矩陣乘法數(shù)學(xué)表示MATLAB 表示 C=A*B注意兩個(gè)矩陣相容性 矩陣加減法矩陣除法矩陣左除:AX = B,求 XMATLAB 求解:X=AB若A為非奇異方陣,則 X=A-1B最小二乘解(若A不是方陣)矩陣右除:XA = B,求

10、 X MATLAB求解:X=B/A若A為非奇異方陣,則 X=BA-1最小二乘解(若A不是方陣)矩陣除法矩陣翻轉(zhuǎn)左右翻轉(zhuǎn) B=fliplr(A)上下翻轉(zhuǎn) C=flipud(A)旋轉(zhuǎn) 90o (逆時(shí)針) D=rot90(A) 如何旋轉(zhuǎn)180o? D=rot180(A) ? Undefined function or variable rot180. D=rot90(rot90(A)矩陣乘方 A 為方陣,求 MATLAB 實(shí)現(xiàn): F=Ax矩陣翻轉(zhuǎn)點(diǎn)運(yùn)算-矩陣對(duì)應(yīng)元素的直接運(yùn)算數(shù)學(xué)表示 : MATLAB 實(shí)現(xiàn): C=A.*B例: A=1,2,3;4,5,6;7,8,0; B=A.AB = 1 4 27

11、 256 3125 46656 823543 16777216 1 C=A.*AC = 1 4 9 16 25 36 49 64 0點(diǎn)運(yùn)算-矩陣對(duì)應(yīng)元素的直接運(yùn)算邏輯變量:當(dāng)前版本有邏輯變量對(duì) double 變量來(lái)說(shuō),非 0 表示邏輯 1邏輯運(yùn)算(相應(yīng)元素間的運(yùn)算)與運(yùn)算 A&C或運(yùn)算 A|C非運(yùn)算 A異或運(yùn)算 xor(A,C)矩陣的邏輯運(yùn)算邏輯變量:矩陣的邏輯運(yùn)算各種允許的比較關(guān)系 , =, , AA = 1 2 3 4 5 6 7 8 0 find(A=5), 大于或等于5元素的下標(biāo) ans = 3 5 6 8矩陣的比較運(yùn)算各種允許的比較關(guān)系矩陣的比較運(yùn)算 i,j=find(A=5);i,

12、j 顯示行標(biāo),列標(biāo)ans = A= 3 1 1 2 3 2 2 4 5 6 3 2 7 8 0 2 3 all(A=5) 某列元素全大于或等于5時(shí),相應(yīng)元素為1,否則為0。ans = 0 0 0 any(A=5) 某列元素中含有大于或等于5時(shí),相應(yīng)元素為1,否則為0。ans = 1 1 1 i,j=find(A=5);i,j 顯示解析結(jié)果的化簡(jiǎn)與變換MATLAB 實(shí)現(xiàn): s1=simple(s) 從各種方法中自動(dòng)選擇最簡(jiǎn)格式 s1,how=simple(s) 化簡(jiǎn)并返回實(shí)際采用的化簡(jiǎn)方法 其中,s為原始表達(dá)式,s1為化簡(jiǎn)后表達(dá)式,how為采用的化簡(jiǎn)方法。其他常用化簡(jiǎn)函數(shù)(信息與格式可用 hel

13、p命令得出) collect( ) 合并同類項(xiàng) expand( ) 展開(kāi)多項(xiàng)式 factor( ) 因式分解 numden( ) 提取多項(xiàng)式的分子和分母 sincos( ) 三角函數(shù)的化簡(jiǎn)解析結(jié)果的化簡(jiǎn)與變換MATLAB 實(shí)現(xiàn):例: syms s; P=(s+3)2*(s2+3*s+2)*(s3+12*s2+48*s+64)P =(s+3)2*(s2+3*s+2)*(s3+12*s2+48*s+64) simple(P) % 一系列化簡(jiǎn)嘗試,得出計(jì)算機(jī)認(rèn)為的最簡(jiǎn)形式ans = (s+3)2*(s+2)*(s+1)*(s+4)3 例: a,m=simple(P) % 返回化簡(jiǎn)方法為因式分解方法,

14、用 factor( ) 函數(shù)將得同樣結(jié)果 a = (s+3)2*(s+2)*(s+1)*(s+4)3m =factor expand(P) ans = s7+21*s6+185*s5+883*s4+2454*s3+3944*s2+3360*s+1152 a,m=simple(P) % 返回化簡(jiǎn)變量替換 其中,f為原表達(dá)式,用x*替換x得出新的。例:求其 Taylor 冪級(jí)數(shù)展開(kāi) syms a b c d t; % 假設(shè)這些變量均為符號(hào)變量 f=cos(a*t+b)+sin(c*t)*sin(d*t); % 定義給定函數(shù) f(t) f1=subs(f,a,b,c,d,t,0.5*pi,pi,0.

15、25*pi,0.125*pi,4)f1 = -1.0000變量替換基本數(shù)論運(yùn)算下取整、上取整、四舍五入、離0近方向取整、最簡(jiǎn)有理數(shù)、求模的余數(shù)、最大公約數(shù)、最小公倍數(shù)、質(zhì)因數(shù)分解、判定是否為質(zhì)數(shù)基本數(shù)論運(yùn)算例:對(duì)下面的數(shù)據(jù)進(jìn)行取整運(yùn)算 -0.2765,0.5772,1.4597,2.1091,1.191,-1.6187 A=-0.2765,0.5772,1.4597,2.1091,1.191,-1.6187; floor(A) % 向 -inf 方向取整ans = -1 0 1 2 1 -2 ceil(A) % 向 +inf 方向取整ans = 0 1 2 3 2 -1 round(A) %取

16、最近的整數(shù)ans = 0 1 1 2 1 -2 fix(A) %向 0 的方向取整ans = 0 0 1 2 1 -1例:對(duì)下面的數(shù)據(jù)進(jìn)行取整運(yùn)算例:3x3 Hilbert 矩陣,試用 rat() 函數(shù)變換 A=hilb(3); n,d=rat(A) 將元素變換成最小有理數(shù),n,d分別為分子、分母矩陣。n = 1 1 1 1 1 1 1 1 1d = 1 2 3 2 3 4 3 4 5例:3x3 Hilbert 矩陣,試用 rat() 函數(shù)變換例:1856120,1483720,最大公約數(shù)、最小公倍數(shù),質(zhì)因數(shù)分解。 format long m=1856120; n=1483720; gcd(m

17、,n), lcm(m,n)求m,n的最大公約數(shù)、最小公倍數(shù)。ans = 1.0e+009 * 0.00000196000000 1.40508284000000 factor(lcm(n,m) 對(duì)lcm(n,m)進(jìn)行質(zhì)因數(shù)分解。ans = 2 2 2 5 7 7 757 947例:1856120,1483720,最大公約數(shù)、最小公倍數(shù),例:1-100間質(zhì)數(shù) A=1:10; isprime(A) 若向量A中某個(gè)整數(shù)值為質(zhì)數(shù),則相應(yīng)位置為1,其他為零。ans = 0 1 1 0 1 0 1 0 0 0 A=1:100; B=A(isprime(A)B = Columns 1 through 16

18、2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 Columns 17 through 25 59 61 67 71 73 79 83 89 97rem(A,C) %A中元素對(duì)C中元素求模得出的余數(shù)。例:1-100間質(zhì)數(shù)循環(huán)結(jié)構(gòu)for 結(jié)構(gòu)while 結(jié)構(gòu)2.3 MATLAB 語(yǔ)言流程控制循環(huán)結(jié)構(gòu)2.3 MATLAB 語(yǔ)言流程控制例:用循環(huán)求解 s=0;for i=1:100 s=s+i;end s=0; i=1;while (i sum(1:100)ans = 5050例:用循環(huán)求解求最小的 m s=0; m=0;while (s tic, s=0; f

19、or i=1:100000, s=s+1/2i+1/3i; end; tocelapsed_time = 1.1820 tic, i=1:100000; s=sum(1./2.i+1./3.i); toc 向量化所需時(shí)間少elapsed_time = 0.3010 i=1:10;s=1./2.i+1./3.i, ss=sum(1./2.i+1./3.i)s = 0.8333 0.3611 0.1620 0.0748 0.0354 0.0170 0.0083 0.0041 0.0020 0.0010ss = 1.4990例:求轉(zhuǎn)移結(jié)構(gòu)轉(zhuǎn)移結(jié)構(gòu)語(yǔ)言程序設(shè)計(jì)基礎(chǔ)98課件例:用循環(huán)求解求最大的 m s

20、=0;for i=1:10000 s=s+i; if s10000, break; endend ii = 141例:用循環(huán)求解求最大的 m 開(kāi)關(guān)結(jié)構(gòu)開(kāi)關(guān)結(jié)構(gòu)語(yǔ)言程序設(shè)計(jì)基礎(chǔ)98課件和 C 語(yǔ)言的區(qū)別當(dāng)開(kāi)關(guān)表達(dá)式的值等于某表達(dá)式,執(zhí)行該語(yǔ)句后結(jié)束該結(jié)構(gòu),不用 break當(dāng)需要在開(kāi)關(guān)表達(dá)式滿足若干個(gè)表達(dá)式之一時(shí)執(zhí)行某一程序段,則用單元形式 (用大括號(hào)把這些表達(dá)式括起來(lái),用逗號(hào)分隔)otherwise 語(yǔ)句,不是C語(yǔ)言中的 default(但與之等價(jià))程序的執(zhí)行結(jié)果和各個(gè)case順序無(wú)關(guān)case 語(yǔ)句中條件不能重復(fù),否則列在后面的條件將不能執(zhí)行和 C 語(yǔ)言的區(qū)別全新結(jié)構(gòu)(首先試探性執(zhí)行語(yǔ)句1,若執(zhí)

21、行過(guò)程中有錯(cuò),將錯(cuò)誤信息賦給保留的lasterr變量,并終止這段語(yǔ)句的執(zhí)行,轉(zhuǎn)而執(zhí)行語(yǔ)句2。) 應(yīng)將不保險(xiǎn)但快的算法放在語(yǔ)句1,保險(xiǎn)的放在語(yǔ)句2;或語(yǔ)句2說(shuō)明語(yǔ)句1失效原因。2.3.4 試探結(jié)構(gòu)全新結(jié)構(gòu)(首先試探性執(zhí)行語(yǔ)句1,若執(zhí)行過(guò)程中有錯(cuò),將錯(cuò)誤信息函數(shù)是 MATLAB 編程的主流方法除了函數(shù)外,還可以采用 M-script(M腳本文件) 文件M-script 適合于小規(guī)模運(yùn)算例:若最大值不為 10000,需修改程序?qū)?m 和 10000 值的設(shè)置,不適合于M-script2.4 MATLAB 函數(shù)的編寫(xiě)函數(shù)是 MATLAB 編程的主流方法2.4 MATLAB 函2.4.1 MATLAB

22、語(yǔ)言的函數(shù)的基本結(jié)構(gòu) nargin, nargout 分別表示輸入和返回變量的實(shí)際個(gè)數(shù),此為MATLAB保留變量,只要進(jìn)入該函數(shù), MATLAB就將自動(dòng)生成這兩個(gè)變量。varargin, varargout 輸入、輸出變量列表(可變輸入輸出個(gè)數(shù))。2.4.1 MATLAB 語(yǔ)言的函數(shù)的基本結(jié)構(gòu) nargin例:前面的要求,m, 10000 function m,s=findsum(k) s=0; m=0; while (s m1,s1=findsum(145323)m1 = 539s1 = 145530無(wú)需修改程序例:前面的要求,m, 10000例: 若只給出一個(gè)輸入?yún)?shù),則會(huì)自動(dòng)生成一個(gè)方陣

23、在函數(shù)中給出合適的幫助信息檢測(cè)輸入和返回變量的個(gè)數(shù)edit myhilb語(yǔ)言程序設(shè)計(jì)基礎(chǔ)98課件function A=myhilb(n, m)%產(chǎn)生A=MYHILB(N,M)或A=MYHILB(N);if nargout1, error(Too many output arguments.); endif nargin=1, m=n; elseif nargin=0 | nargin2 error(Wrong number of input arguments.); endA1=zeros(n,m);for i=1: n for j=1:m A1(i,j)=1/(i+j-1);end, end

24、if nargout=1, A=A1; elseif nargout=0, disp(A1); endfunction A=myhilb(n, m) help myhilb 產(chǎn)生A=MYHILB(N,M)或A=MYHILB(N); A=myhilb(3,4)A = 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667 A=myhilb(4)A = 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.250

25、0 0.2000 0.1667 0.2500 0.2000 0.1667 0.1429 A=myhilb(3,4,5)? Error using = myhilbToo many input arguments. help myhilb例:函數(shù)的遞歸調(diào)用:階乘function k=my_fact(n)if nargin=1, error(輸入變量個(gè)數(shù)錯(cuò)誤,只能有一個(gè)輸入變量); endif nargout1, error(輸出變量個(gè)數(shù)過(guò)多); endif abs(n-floor(n)eps | n1 % 如果 n1, 進(jìn)行遞歸調(diào)用 k=n*my_fact(n-1);elseif any(0 1

26、=n) % 0!=1!=1 k=1;end例:函數(shù)的遞歸調(diào)用:階乘 my_fact(11)ans = 39916800 其實(shí)MATLAB提供了求取階乘的函數(shù)factorial(),其核心算法為 prod(1:n),從結(jié)構(gòu)上更簡(jiǎn)單、直觀,速度也更快。 prod(1:11)ans = 39916800 prod(1:3:11)ans = 280 my_fact(11)例: conv( ) 可以計(jì)算兩個(gè)多項(xiàng)式的積用 varargin 實(shí)現(xiàn)任意多個(gè)多項(xiàng)式的積function a=convs(varargin) a=1; for i=1:length(varargin), a=conv(a,vararg

27、ini); end P=1 2 4 0 5; Q=1 2; F=1 2 3; D=convs(P,Q,F)D = 1 6 19 36 45 44 35 30 poly2sym(D)ans =x7+6*x6+19*x5+36*x4+45*x3+44*x2+35*x+302.4.2 可變輸入輸出個(gè)數(shù)例: conv( ) 可以計(jì)算兩個(gè)多項(xiàng)式的積2.4.2 E=conv(conv(P,Q),F) % 若采用 conv() 函數(shù),則需要嵌套調(diào)用E = 1 6 19 36 45 44 35 30 poly2sym(E)ans =x7+6*x6+19*x5+36*x4+45*x3+44*x2+35*x+30

28、 G=convs(P,Q,F,1,1,1,3,1,1)G = 1 11 56 176 376 578 678 648 527 315 90 E=conv(conv(P,Q),F) 2.4.3 inline 函數(shù)和匿名函數(shù)inline 函數(shù),可以免去文件 f=inline(sin(x.2+y.2),x,y)MATLAB 7.02.4.3 inline 函數(shù)和匿名函數(shù)inline 函數(shù),2.5 二維圖形繪制2.5.1 二維圖形繪制基本語(yǔ)句構(gòu)造向量:2.5 二維圖形繪制2.5.1 二維圖形繪制基本語(yǔ)句構(gòu)造向量語(yǔ)言程序設(shè)計(jì)基礎(chǔ)98課件例:選項(xiàng)為紅色點(diǎn)劃線且每個(gè)轉(zhuǎn)折點(diǎn)用五角星表示r-.pentagram

29、例:選項(xiàng)為紅色點(diǎn)劃線且每個(gè)轉(zhuǎn)折點(diǎn)用五角星表示例: x=-pi : 0.05: pi; % 以 0.05 為步距構(gòu)造自變量向量 y=sin(tan(x)-tan(sin(x); % 求出各個(gè)點(diǎn)上的函數(shù)值 plot(x,y) plot(x,y,r-.pentagram)例: x=-pi:0.05:-1.8,-1.801:.001:-1.2, -1.2:0.05:1.2,. 1.201:0.001:1.8, 1.81:0.05:pi; % 以變步距方式構(gòu)造自變量向量 y=sin(tan(x)-tan(sin(x); % 求出各個(gè)點(diǎn)上的函數(shù)值 plot(x,y) % 繪制曲線 x=-pi:0.05:-

30、1.8,-1.801:.00例: x=-2:0.02:2; % 生成自變量向量 y=1.1*sign(x).*(abs(x)1.1) + x.*(abs(x) plot(-2,-1.1,1.1,2,-1.1,-1.1,1.1,1.1)例:圖形元素屬性獲取與修改 圖形中,每條曲線、坐標(biāo)軸、圖形窗口分別是一個(gè)對(duì)象??捎胹et( )函數(shù)設(shè)置對(duì)象的屬性,用get( )函數(shù)獲得對(duì)象的某個(gè)屬性。這兩個(gè)語(yǔ)句在界面編程中特別有用。圖形元素屬性獲取與修改 圖形中,每條曲線2.5.2 其他二維圖形繪制語(yǔ)句 二維條形圖、羅盤(pán)圖、羽毛狀圖、直方圖、極坐標(biāo)圖、階梯圖形、x-半對(duì)數(shù)圖、彗星狀軌跡圖、誤差限圖形、二維填充圖

31、、對(duì)數(shù)圖、磁力線圖、火柴桿圖、y-半對(duì)數(shù)圖。2.5.2 其他二維圖形繪制語(yǔ)句 二維條形圖、羅盤(pán)圖、羽例:繪制極坐標(biāo)曲線 theta=0:0.01:6*pi; rho=5*sin(4*theta/3); polar(theta,rho) rho=5*sin(theta/3); polar(theta,rho) 周期確定,可以采用試湊方法例:繪制極坐標(biāo)曲線例:用不同曲線繪制函數(shù)表示正弦曲線 t=0:.2:2*pi; y=sin(t); % 先生成繪圖用數(shù)據(jù) subplot(2,2,1), stairs(t,y) % 分割窗口,在左上角繪制階梯曲線 subplot(2,2,2), stem(t,y)

32、 % 火柴桿曲線繪制 subplot(2,2,3), bar(t,y) % 條型圖繪制 subplot(2,2,4), semilogx(t,y) % 橫坐標(biāo)為對(duì)數(shù)的曲線例:用不同曲線繪制函數(shù)表示正弦曲線2.5.3 隱函數(shù)繪制及應(yīng)用隱函數(shù) 例: ezplot(x2 *sin(x+y2) +y2*exp(x+y)+5*cos(x2+y) x自選 ezplot(x2 *sin(x+y2) +y2*exp(x+y)+5*cos(x2+y),-10 10)2.5.3 隱函數(shù)繪制及應(yīng)用隱函數(shù) 2.6 三維圖形繪制三維曲線繪制stem3(三維火柴桿型曲線), fill3(三維填充圖形), bar3(三維直

33、方圖)等。2.6 三維圖形繪制三維曲線繪制例:參數(shù)方程 t=0:.1:2*pi; % 構(gòu)造 t 向量,注意下面的點(diǎn)運(yùn)算 x=t.3.*sin(3*t).*exp(-t); y=t.3.*cos(3*t).*exp(-t); z=t.2; plot3(x,y,z), grid % 三維曲線繪制 stem3(x,y,z); hold on; plot3(x,y,z), grid例:參數(shù)方程2.6.2 三維曲面繪制一般曲面繪制mesh( )繪制網(wǎng)格圖,surf( )繪制表面圖。其他函數(shù),光照下 surfl( ), surfc( ),瀑布型waterfall( )等高線繪制 contour( ), c

34、ontour3( )2.6.2 三維曲面繪制一般曲面繪制例:Butterworth 濾波器 x,y=meshgrid(0:31); n=2; D0=200; D=sqrt(x-16).2+(y-16).2); % 求距離 z=1./(1+D.(2*n)/D0); mesh(x,y,z), % 計(jì)算并繪制濾波器 axis(0,31,0,31,0,1) % 重新設(shè)置坐標(biāo)系,增大可讀性 surf(x,y,z) % 繪制三維表面圖 contour3(x,y,z,30) 三維等高線圖,30等高線條數(shù)例:Butterworth 濾波器語(yǔ)言程序設(shè)計(jì)基礎(chǔ)98課件例:試?yán)L制出二元函數(shù) x,y=meshgrid(

35、-2:.1:2); z=1./(sqrt(1-x).2+y.2)+1./(sqrt(1+x).2+y.2);Warning: Divide by zero.(Type warning off MATLAB:divideByZero to suppress this warning.)Warning: Divide by zero.(Type warning off MATLAB:divideByZero to suppress this warning.) surf(x,y,z), shading flat %修飾其顯示形式例:試?yán)L制出二元函數(shù) xx=-2:.1:-1.2, -1.1:0.02

36、:-0.9, -0.8:0.1:0.8, 0.9:0.02:1.1, 1.2:0.1:2; yy=-1:0.1:-0.2, -0.1:0.02:0.1, 0.2:.1:1; x,y=meshgrid(xx,yy); z=1./(sqrt(1-x).2+y.2)+1./(sqrt(1+x).2+y.2);Warning: Divide by zero.(Type warning off MATLAB:divideByZero to suppress this warning.)Warning: Divide by zero.(Type warning off MATLAB:divideByZer

37、o to suppress this warning.) surf(x,y,z), shading faceted; set(gca,zlim,0,20)%獲得當(dāng)前坐標(biāo)軸對(duì)象的句柄 xx=-2:.1:-1.2, -1.1:0.02:-例:Butterworth 濾波器 x,y=meshgrid(0:31); n=2; D0=200; D=sqrt(x-16).2+(y-16).2); z=1./(1+D.(2*n)/D0); % 計(jì)算濾波器 subplot(221), surf(x,y,z), axis(0,31,0,31,0,1); view(0,90);% 俯視圖 subplot(222)

38、, surf(x,y,z), axis(0,31,0,31,0,1); view(90,0); % 側(cè)視圖% subplot(223), surf(x,y,z), axis(0,31,0,31,0,1); view(0,0); % 正視圖 subplot(224), surf(x,y,z), axis(0,31,0,31,0,1); % 三維圖例:Butterworth 濾波器第一個(gè)角度用來(lái)表示水平方向,默認(rèn)值-37.5度( y軸負(fù)方向的夾角);第二個(gè)角度用來(lái)表示垂直方向,默認(rèn)值36度;語(yǔ)言程序設(shè)計(jì)基礎(chǔ)98課件語(yǔ)言程序設(shè)計(jì)基礎(chǔ)98課件Yq!t*w-A1D4G8JbMeQhTlWoZr%u(x+

39、B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMeP

40、hTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w

41、)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9Lc

42、OfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1

43、C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfR

44、jUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMelWo#r%v(y+B3E6H9LcSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7

45、JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmX

46、p!s&v)z0C4F7IalXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMd

47、PhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5HSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x-A2D

48、5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-z1D4G8JbMeQhTkWo

49、Zr%u(3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWs%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論