Matlab-7.0高級語言程序設(shè)計基礎(chǔ)與及應(yīng)用_第1頁
Matlab-7.0高級語言程序設(shè)計基礎(chǔ)與及應(yīng)用_第2頁
Matlab-7.0高級語言程序設(shè)計基礎(chǔ)與及應(yīng)用_第3頁
Matlab-7.0高級語言程序設(shè)計基礎(chǔ)與及應(yīng)用_第4頁
Matlab-7.0高級語言程序設(shè)計基礎(chǔ)與及應(yīng)用_第5頁
已閱讀5頁,還剩180頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

MATLAB7.0高級語言程序設(shè)計基礎(chǔ)及應(yīng)用

概述

MATLAB是“MatrixLaboratory”的縮寫,具有以矩陣運(yùn)算為基礎(chǔ)的數(shù)學(xué)計算和分析功能。與其它計算機(jī)高級語言相比,其強(qiáng)大的數(shù)據(jù)可視化表現(xiàn)能力即圖形功能更具有獨(dú)特的優(yōu)勢。主要內(nèi)容

1MATLAB7.0開發(fā)環(huán)境及使用入門

2數(shù)組運(yùn)算和矩陣運(yùn)算

3基本圖形函數(shù)及圖形處理

4數(shù)值運(yùn)算

5MATLAB程序設(shè)計基礎(chǔ)

6課題研發(fā)實(shí)例介紹7、187、197、20參考書參考書

參考書1、MATLAB7.0高級語言設(shè)序設(shè)計,董靜薇編著,黑龍江教育出版社,2007、32、MATLAB7.0從入門到精通,求是科技編著,人民郵電出版社,2009,2

1MATLAB7.0開發(fā)環(huán)境及使用入門

1.1MATLAB的產(chǎn)生及發(fā)展產(chǎn)生:二十世紀(jì)七十年代末,美國新墨西哥大學(xué)計算機(jī)科學(xué)系主任CleveMoler教授用FORTRAN語言編寫了一組調(diào)用LINPACK和EIAPACK庫程序的簡單易用的接口程序——萌芽狀態(tài)MATLAB;發(fā)展:1984年成立MathWorks公司正式將MATLAB推向市場——此時MATLAB內(nèi)核已經(jīng)改由C語言編寫、并在原數(shù)值運(yùn)算基礎(chǔ)上增加了數(shù)據(jù)可視化功能;

1MATLAB7.0開發(fā)環(huán)境及使用入門現(xiàn)狀:二十世紀(jì)九十年代至今,MATLAB已經(jīng)成為國際控制屆公認(rèn)的標(biāo)準(zhǔn)計算軟件;版本更新:MATLAB推出以來功能不斷提高完善,經(jīng)歷了多個版本階段。

1993年4.0版

1997年5.0版

2001年6.1版

2002年6.5版

2004年7.0版(MATLAB最新版本)1.2MATLAB7.0開發(fā)環(huán)境MATLAB7.0操作桌面:

指令窗(CommandWindow)歷史指令窗(CommandHistory)工作空間(Workspace)當(dāng)前目錄(CurrentDirectory)開始按鈕(Start)主菜單和工具欄等指令窗(CommandWindow)

1、計算器使用方法2、變量和表達(dá)式MATLAB采用C為內(nèi)核,因此其變量命名規(guī)則與C語言類似:變量名以英文字母開頭;變量名中可以包含大、小寫英文字母、數(shù)字和下劃線;變量名區(qū)分大小寫英文字母,即“A”和“a”是兩個不同的變量。與C語言不同,MATLAB變量名不能以下劃線開頭。指令窗(CommandWindow)2、變量和表達(dá)式默認(rèn)變量名意義ans運(yùn)算結(jié)果pi圓周率πInf,inf無窮大∞NaN,nan非數(shù)(NotaNumber)i,j虛單元realmax最大正實(shí)數(shù)realmin最小正實(shí)數(shù)eps機(jī)器零閾值MATLAB常用默認(rèn)變量指令窗(CommandWindow)2、變量和表達(dá)式

abs(z)求復(fù)數(shù)z的模;

real(z)求復(fù)數(shù)z的實(shí)部;

imag(z)求復(fù)數(shù)z的虛部。指令窗(CommandWindow)3、指令行中的標(biāo)點(diǎn)符號標(biāo)點(diǎn)符號作用方括號[]輸入數(shù)組或作為函數(shù)的多個輸出參數(shù)列表空格分隔數(shù)組中同一行的各個元素逗號,分隔數(shù)組中同一行的各個元素或用于指令末尾分隔下一條指令分號;分隔數(shù)組中不同的行或用于指令末尾表示此指令的運(yùn)行結(jié)果不顯示冒號:產(chǎn)生等間隔的元素百分號%其后的字符為非執(zhí)行的注釋文字圓括號()數(shù)組元素引用或作為函數(shù)的輸入?yún)?shù)列表MATLAB指令行中的常用標(biāo)點(diǎn)符號指令窗(CommandWindow)4、命令行的參數(shù)設(shè)置打開主菜單File——Preferences——CommandWindow——Numericformat:>>a=0.03short0.0300long0.03000000000000shorte3.0000e-002longe3.00000000000000bank12.36rational3/100++1.3M文件編輯調(diào)試器Editor的使用方法:1、M文件的編輯2、M文件的運(yùn)行(結(jié)果顯示)3、M文件的調(diào)試(斷點(diǎn))(1)數(shù)值運(yùn)算結(jié)果直接在命令窗口CommandWindow中顯示;(2)可視化結(jié)果(圖形)在自動打開的新的Figure窗口中顯示;(3)如果指令末尾有分號,則在Workspace中查看變量的值。

第1章練習(xí)1-1、計算(5+3)×6-82的值;1-2、使用兩種不同的方式輸入數(shù)組a和數(shù)組b,a:[2.53.04]、b:;1-3、編寫M文件,求100以內(nèi)能被3整除的所有正整數(shù)。

2.1

數(shù)組和矩陣的創(chuàng)建1、數(shù)組和矩陣的創(chuàng)建規(guī)則:

(1)、元素必須在“[]”中;

(2)、同行元素用空格或逗號分隔;

(3)、行與行間用分號或[Enter]分隔;

(4)、維數(shù)、大小不必預(yù)先定義;

(5)、元素可以是數(shù)值、變量、表達(dá)式或函數(shù)。

2

MATLAB中數(shù)組運(yùn)算和矩陣運(yùn)算2、數(shù)組和矩陣的創(chuàng)建方法:

(1)、在CommandWindow中直接輸入;

(2)、通過M文件創(chuàng)建:當(dāng)矩陣較大時,直接輸入容易出錯,可將其寫入M文件,然后在CommandWindow中運(yùn)行該文件,即可把矩陣調(diào)入Workspace;

(3)、通過數(shù)據(jù)文件創(chuàng)建:文本文件、MATLAB的.mat文件、Excel數(shù)據(jù)表、圖像文件和聲音文件以及其它以ASCII碼格式提供的數(shù)據(jù)文件可通過數(shù)據(jù)輸入向?qū)Вā癋ile——ImportData---”)導(dǎo)入Workspace。3、數(shù)組和矩陣的訪問:MATLAB訪問或引用數(shù)組和矩陣中的元素時使用“()”。>>a=[123;456;789]a=123456789>>b=a(2,3)b=6>>b=a(1,:)b=123>>

a=[123;456;789]a=123456789>>b=a(1,2:3)b=23>>b=a(:,3)b=369>>

a=[3,:]=0a=1234560004、特殊矩陣的創(chuàng)建:(1)空矩陣:在CommandWindow輸入空的“[]”,產(chǎn)生0×0階矩陣。(2)全0陣:zeros(m,n)——m×n階矩陣,每個元素均為0;zeros(n)——n×n階全0方陣;zeros(m,n,p)——m×n×p階的全0多維數(shù)組。(3)單位陣:主對角線元素為1、其它元素為0的矩陣,數(shù)學(xué)上常記做I或En。eye(n)——n×n階單位矩陣;eye(m,n)——m×n階單位矩陣。4、特殊矩陣的創(chuàng)建:(4)全1陣:ones(m,n,p)——m×n×p階的全1多維數(shù)組。(5)隨機(jī)陣:rand(m,n,p)——m×n×p階元素為(0,1.0)區(qū)間的平均分布的隨機(jī)數(shù);randn(m,n,p)——m×n×p階正態(tài)分布的隨機(jī)數(shù);均值為0、方差為1、標(biāo)準(zhǔn)差為1。4、特殊矩陣的創(chuàng)建:(6)特殊數(shù)學(xué)矩陣:magic(n)——產(chǎn)生n×n階的魔方矩陣。pascal(n)——產(chǎn)生n×n階Pascal矩陣;hilb(n)——產(chǎn)生n×n階Hilbert矩陣:>>formatrational>>hilb(5)ans=2.2數(shù)組和矩陣的代數(shù)運(yùn)算1、加減運(yùn)算參與加減運(yùn)算的數(shù)組或矩陣的大小必須相同,對應(yīng)元素相加減即可。2、乘除運(yùn)算(1)矩陣的乘:與數(shù)學(xué)上矩陣乘的定義相同,MATLAB矩陣乘的運(yùn)算符為“*”;(2)數(shù)組的乘:MATLAB中數(shù)組的乘法定義為對應(yīng)元素相乘,參與乘運(yùn)算的數(shù)組必須大小相同,MATLAB數(shù)組乘的運(yùn)算符為“.*”。2、乘除運(yùn)算(3)矩陣的除:數(shù)學(xué)上沒有定義“矩陣除”的運(yùn)算規(guī)則,相應(yīng)運(yùn)算由逆矩陣的乘運(yùn)算來實(shí)現(xiàn),如右除A/B,等價于A×B-1;左除A\B,等價于A-1×B;通常情況下,A×B-1≠A-1×B例2-1、解方程組解:可將方程組寫成矩陣形式:即則有:所以程序清單如下:A=[335;511;206];B=[2;1.5;0.5];x=A\B程序運(yùn)行結(jié)果:x=0.21050.43420.01322、乘除運(yùn)算(4)數(shù)組的除:運(yùn)算符為右除“./”,即B./A等價于B中元素除以A中的對應(yīng)元素;左除“.\”,即A.\B;一般根據(jù)數(shù)學(xué)習(xí)慣,B./A較為常用。2、乘除運(yùn)算(5)冪運(yùn)算矩陣的求冪運(yùn)算符號為“^”,a^n表示矩陣a按照矩陣的乘法規(guī)則連乘n次;數(shù)組的求冪運(yùn)算符號為“.^”,a.^b表示以數(shù)組a的元素為底數(shù),數(shù)組b的元素為指數(shù)逐一求冪。2、乘除運(yùn)算(6)矩陣的轉(zhuǎn)置矩陣的轉(zhuǎn)置運(yùn)算符號為“’”,與數(shù)學(xué)符號意義相同。

2.3關(guān)系運(yùn)算

MATLAB定義了如下數(shù)組和矩陣的關(guān)系運(yùn)算符:<、<=、>、>=、==、~=注意:關(guān)系運(yùn)算是針對每個元素的運(yùn)算,運(yùn)算結(jié)果為“1”和“0”。

2.4邏輯運(yùn)算

MATLAB定義了如下數(shù)組和矩陣的邏輯運(yùn)算符:

&(與)、|(或)、~(非)、xor(異或)注意:邏輯運(yùn)算結(jié)果為“1”和“0”,對應(yīng)結(jié)果為“真”和“假”。特征值問題在應(yīng)用領(lǐng)域占有極其重要的地位。特征值代表著矩陣所描述的系統(tǒng)的模態(tài)。2.5MATLAB矩陣函數(shù)1、特征值分解1、特征值分解矩陣A與向量ν相乘,即表示算子A對向量ν的變換。向量ν在變換的作用下將發(fā)生旋轉(zhuǎn)、反射、放大、縮小等變化。但是對任何一個矩陣(算子)來說,總存在那么一些特殊的向量,在對其變換的作用下,向量的方向不變,僅長短發(fā)生變化。這種向量就是該矩陣的特征向量(Eigenvector)。向量ν在變換的作用下將發(fā)生旋轉(zhuǎn)、反射、放大、縮小等變化。但是對任何一個矩陣(算子)來說,總存在那么一些特殊的向量,在對其變換的作用下,向量的方向不變,僅長短發(fā)生變化。這種向量就是該矩陣的特征向量(Eigenvector)。每個向量均滿足方程:式中λ是一個標(biāo)量,稱為矩陣A的特征值,該方程稱為特征方程。MATLAB中的特征值分解函數(shù)為eig(A),通常用于下面兩種形式:(1)將A進(jìn)行特征值分解,得到特征向量矩陣,賦值給ν;得到特征值對角矩陣,賦值給d,使得(2)該函數(shù)僅計算A的特征值,以列向量的形式賦值給d,d不是對角陣。例2-2、矩陣a為,計算a的特征值值和特征向量。從程序運(yùn)行結(jié)果可以看出:矩陣a有3個特征向量,對應(yīng)m的3個列;每個特征向量對應(yīng)一個特征值,分別為

5.0494、-1.2047+0.7630i、-1.2047-0.7630i為了校驗運(yùn)算結(jié)果,將a、m和n代入特征方程定義式,檢驗a*m=m*n是否成立。2、矩陣的逆陣矩陣A的逆矩陣函數(shù):inv(A)逆矩陣的定義:A為可逆矩陣的充要條件為A的行列式不為零,即對于奇異矩陣,,用函數(shù)求得的逆陣可能是偽解。3、矩陣的翻轉(zhuǎn)和旋轉(zhuǎn)矩陣A左右翻轉(zhuǎn)函數(shù):fliplr(A)矩陣A上下翻轉(zhuǎn)函數(shù):flipup(A)矩陣A逆時針旋轉(zhuǎn)90度函數(shù):rot90(A)4、矩陣元素的重組將矩陣a重新排列為m×n階的形式:reshape(a,m,n)矩陣重組按照“列優(yōu)先”的原則,先將矩陣a中的元素按照列順序排成1列,再取m個元素構(gòu)成新矩陣的第1列,再取m個元素構(gòu)成新矩陣的第2列,---。m×n必須與矩陣a的元素個數(shù)相同。將3個矩陣重新組成一個新矩陣新矩陣

例2-3

1、三角函數(shù)MATLAB三角函數(shù)列表2.6、MATLAB數(shù)學(xué)函數(shù)函數(shù)名說明函數(shù)名說明函數(shù)名說明函數(shù)名說明sin正弦sinh雙曲正弦asin反正弦asinh反雙曲正弦cos余弦cosh雙曲余弦acos反余弦acosh反雙曲余弦tan正切tanh雙曲正切atan反正切atanh反雙曲正切cot余切coth雙曲余切acot反余切acoth反雙曲余切

1、三角函數(shù)注意:(1)MATLAB三角函數(shù)輸入?yún)?shù)的單位是弧度值,不是角度值;(2)sin的返回值是1.2246×10-16,而不是理論上的0。同其他計算機(jī)語言相同,MATLAB的三角函數(shù)運(yùn)算不可避免的存在計算誤差。2.6、MATLAB數(shù)學(xué)函數(shù)

2、指數(shù)函數(shù)MATLAB指數(shù)函數(shù)列表2.6、MATLAB數(shù)學(xué)函數(shù)函數(shù)說明函數(shù)說明exp(x)exsqrt(x)X的平方根log(x)ln(x)log10(x)lg(x)log2(x)log2(x)pow2(x)2x

3、復(fù)數(shù)函數(shù)MATLAB復(fù)數(shù)函數(shù)列表2.6、MATLAB數(shù)學(xué)函數(shù)函數(shù)說明函數(shù)說明abs(x)幅值angle(x)相角real(x)實(shí)部imag(x)虛部complex(x)用實(shí)部和虛部構(gòu)造復(fù)數(shù)conj(x)復(fù)數(shù)共軛

4、取整和求余函數(shù)MATLAB取整和求余函數(shù)列表2.6、MATLAB數(shù)學(xué)函數(shù)函數(shù)說明函數(shù)說明round(x)四舍五入mod(x)帶符號求余(求模)fix(x)向0方向取整ceil(x)向正方向取整rem(x)無符號求余(求模)floor(x)向負(fù)方向取整sign(x)符號函數(shù)2-1通過數(shù)據(jù)輸入向?qū)⑷我?個.bmp文件和.jpg文件導(dǎo)入Workspace中,觀察生成的變量名稱、大小,并在CommandWindow中顯示出其中某行和某列元素的值。2-2產(chǎn)生50×3的正態(tài)分布隨機(jī)數(shù)矩陣,并在ArrayEditor中使用按鈕將其按列元素繪制成3條曲線。2-3產(chǎn)生3×3的Pascal矩陣a,并求a+a,a-a,a*a,a.*a,a.^a,a^2。2-4解方程組

第2章、練習(xí)2-5x為[331],y為[042],求數(shù)組的冪和矩陣的冪。2-6產(chǎn)生20個平均分布的隨機(jī)數(shù),找出其中大于等于0.5的數(shù)。2-7矩陣a為,計算a的特征值值和特征向量并驗證結(jié)果的正確性。2-8矩陣a為,計算a的逆矩陣。

第2章、練習(xí)2-9編寫程序,將5階Pascal矩陣變成如下形式:2-10將兩個矩陣和,重新組成新矩陣

第2章、練習(xí)2-11求[0,π]區(qū)間內(nèi)每間隔π/10的余弦值。2-12求復(fù)數(shù)5+7i的幅值、相角和共軛。2-13求矩陣的轉(zhuǎn)置和共軛轉(zhuǎn)置。2-14有10名學(xué)生的考試成績分別為67.4、80、55.5、79.8、46.6、95.5、95、83.4、60.2、59.5,計算出總成績和平均成績,再將每人成績四舍五入算出個人成績。2-15產(chǎn)生[0,10]區(qū)間的6個隨機(jī)整數(shù),找出其中大于等于7的數(shù)。

第2章、練習(xí)

第3章基本圖形函數(shù)及圖形處理MATLAB圖形功能強(qiáng)大,圖形函數(shù)豐富。這里我們著重介紹基礎(chǔ)的MATLAB高層繪圖指令進(jìn)行數(shù)據(jù)可視化的方法,使大家能夠盡快學(xué)會使用MATLAB的圖形處理功能。3.1二維繪圖1、直角坐標(biāo)繪圖MATLAB最常用的繪圖函數(shù)是二維直角坐標(biāo)繪圖函數(shù):plot()函數(shù),根據(jù)輸入?yún)?shù)的不同,該函數(shù)的用法非常靈活。3.1二維繪圖1、直角坐標(biāo)繪圖(1)單向量繪圖plot(y)——當(dāng)y為實(shí)數(shù)向量時(行向量、列向量均可),曲線以元素位置序號(1、2、3---)為橫坐標(biāo),元素值為縱坐標(biāo);

——當(dāng)y為復(fù)數(shù)向量時,曲線以元素實(shí)部為橫坐標(biāo),虛部為縱坐標(biāo),相當(dāng)于plot(real(y),imag(y))。程序清單:t=[15.516.51819.519.520.51817.516.5]plot(t)例3-1:下表為8小時內(nèi)每隔1小時測得的環(huán)境溫度,繪出溫度變化曲線。序號123456789溫度15.516.51819.519.520.51817.516.53.1二維繪圖1、直角坐標(biāo)繪圖(2)雙向量繪圖plot(x,y)——曲線以向量x為橫坐標(biāo),y為縱坐標(biāo);

程序清單:x=0:pi/10:4*pi;y=sin(x);plot(x,y)例3-2:繪制[0,4π]區(qū)間的正弦波。程序清單:x=-3:0.1:3;y=3.*x.*x+2*x+5;plot(x,y)例3-3:繪制

區(qū)間內(nèi)的曲線。1、直角坐標(biāo)繪圖(3)曲線的基本參數(shù)設(shè)置在繪圖函數(shù)中加入一些參數(shù)可以控制曲線的形式和顏色。用成對的數(shù)據(jù)繪制曲線時,曲線的形式多樣,可以只畫出連線圖,也可以既標(biāo)記數(shù)據(jù)點(diǎn)又畫出連線。MATLAB提供了4種連線的線型和13種標(biāo)記點(diǎn)的類型:

線型和標(biāo)記點(diǎn)的類型列表類型符號線型實(shí)線(缺?。摼€---------冒號線:點(diǎn)劃線_.標(biāo)記點(diǎn)(部分)點(diǎn).加號+星號*圓圈。叉號x圖形中的連線和標(biāo)記點(diǎn)可以有多種顏色,MATLAB高層繪圖函數(shù)中可選顏色如下表序號符號顏色1(缺省)b藍(lán)色blue2ggreen綠色3rred紅色4c青色cyan5mmagenta紫色6yyellow黃色7kblack黑色8wwhite白色曲線的形式和顏色用對應(yīng)的符號組合寫成字符串的形式(用單引號)作為一個輸入?yún)?shù)在調(diào)用繪圖函數(shù)時給出。例如:plot(x,y,’r+-’)畫出紅色實(shí)線和加號狀的標(biāo)記點(diǎn);plot(x,y,’k:’)畫出黑色冒號線,不畫標(biāo)記點(diǎn);plot(x,y)缺?。寒嬎{(lán)色實(shí)線,不畫標(biāo)記點(diǎn),相當(dāng)于plot(x,y,’b-’)。例3-4:在一個坐標(biāo)軸內(nèi)畫出3條不同形式的曲線程序代碼:t=0:2:20;u=sqrt(t);plot(t,u,’k*-’)u2=u+2;holdon%保持繪圖,即:其后的繪圖時不將原有的土覆蓋掉plot(t,u2,’ro-’)u3=u+4;plot(t,u3,’x:’)holdoff%恢復(fù)成不保持狀態(tài)(缺省狀態(tài))3.1二維繪圖2、對數(shù)坐標(biāo)繪圖semilogx——半對數(shù)坐標(biāo)繪圖,x軸為對數(shù)軸,y軸為線性坐標(biāo);semilogy——半對數(shù)坐標(biāo)繪圖,y軸為對數(shù)軸,x軸為線性坐標(biāo);loglog——x軸、y軸均為對數(shù)軸。例3-5:分別用線性坐標(biāo)和對數(shù)坐標(biāo)繪制曲線程序代碼:x=0:0.5:5;y=2*exp(x+0.5);plot(x,y,’*-’)gridon%顯示坐標(biāo)網(wǎng)格figuresemilogy(x,y,’*-’)gridon3.1二維繪圖3、極坐標(biāo)繪圖polar(a,r)——繪制極坐標(biāo)圖,

a軸為角度,r為半徑;例3-6:對比線性坐標(biāo)和極坐標(biāo),繪制函數(shù)曲線程序代碼:t=0:pi/10:2*pi;%繪制極坐標(biāo)圖時,角度一般選擇0—2π區(qū)間r=1+cos(t);plot(t,r,’k^-’)figurepolar(t,r,’k^-’)gridon4、多重曲線繪圖當(dāng)需要在一個坐標(biāo)系中繪制一組圖形時,可以使用一句plot指令來完成(1)使用多組輸入?yún)?shù):plot(x1,y1,x2,y2,---)(2)雙y軸繪圖:plot(x1,y1,x2,y2,’function1’,’function2’)繪制曲線(x1,y1)用左側(cè)的縱軸,用繪圖函數(shù)function1,繪制曲線(x2,y2)用右側(cè)的縱軸,用繪圖函數(shù)function2,橫軸共用。(1)條形圖bar(a):若a為向量,則每個元素繪制一個條形;若為矩陣,則每行元素繪制一組條形,每列元素使用相同顏色。5、特殊二維圖形例3-7繪制向量條形圖練習(xí)a=[1352284];bar(a)例3-8繪制矩陣條形圖練習(xí)(每行元素繪制一組條形,每列元素使用相同顏色)>>a=fix(rand(2,4)*10)a=96842470>>bar(b)(2)餅圖pie(x,explode):按“列優(yōu)先”的原則,用x的元素占總和的比例畫扇形。explode為與x的size相同的矩陣,其中非零元素對應(yīng)位置的扇形從餅中獨(dú)立出來。5、特殊二維圖形例3-9繪制餅圖練習(xí)a=[1235];pie(a)figurea=[1235;1532];pie(a)figurepie(a,[0100;0001])(3)直方圖對于工程上大量觀測數(shù)據(jù),如果想表現(xiàn)各數(shù)值范圍內(nèi)觀測數(shù)據(jù)出現(xiàn)的次數(shù)或觀測數(shù)據(jù)在數(shù)值上的分布情況,繪制直方圖是最簡單明了的方法。hist(x,div):用x每列元素的統(tǒng)計來繪制直方圖,橫軸為元素數(shù)據(jù)的取值范圍,縱軸為每個小的取值區(qū)間內(nèi)的元素的個數(shù)。div為取值區(qū)間的分段數(shù),缺省值為10。5、特殊二維圖形例3-10繪用函數(shù)randn產(chǎn)生4組隨機(jī)數(shù),分別觀察它們的分布規(guī)律y=randn(1000,4);hist(y)

3.2圖形窗口圖形窗口的菜單和工具條

3.2圖形窗口1、圖形窗口的菜單和工具條2、圖形的控制命令:利用Figure窗口的菜單和工具欄,用戶可以通過操作鼠標(biāo)來控制圖形。但是如果需要在程序中自動設(shè)置圖形的屬性,就必須使用圖形控制命令來實(shí)現(xiàn)。(1)坐標(biāo)軸控制命令axis用法見下表坐標(biāo)軸控制命令axis用法分類命令意義軸范圍axisauto軸范圍自動隨數(shù)據(jù)而變化(缺?。゛xismanual軸范圍不隨數(shù)據(jù)大小而變化axis([xmin,xmax,ymin,ymax])分別設(shè)定x,y軸范圍axis([minmax])x,y軸范圍相同軸刻度比例axisequalx,y軸刻度相同axissquarex,y軸長度相同axistight隨數(shù)據(jù)范圍緊縮坐標(biāo)軸axisnormal自動調(diào)節(jié)坐標(biāo)軸與數(shù)據(jù)的比例顯示axison顯示坐標(biāo)軸(缺省)axisoff隱藏坐標(biāo)軸2、圖形的控制命令:(2)繪制子圖如果需要在一個窗口內(nèi)同時顯示多個子圖,可用函數(shù)subplot(m,n,i)——繪制m×n個子圖的第i個例3-10在一個窗口內(nèi)顯示4種不同頻率的正弦波的疊加圖t=0:pi/100:2*pi;y1=sin(t);y2=y1+sin(3*t);y3=y2+sin(10*t);y4=y3+sin(20*t);subplot(2,2,1)plot(t,y1,'LineWidth',3)subplot(2,2,2)plot(t,y2,'LineWidth',3)subplot(2,2,3)plot(t,y3,'LineWidth',3)subplot(2,2,4)plot(t,y4,'LineWidth',3)2、圖形的控制命令:(3)圖形的標(biāo)注為了使圖形更具有可讀性,應(yīng)對圖形進(jìn)行必要的標(biāo)注。常用函數(shù)有xlabel(‘string’),ylabel(‘string’),zlabel(‘string’),—x、y、z軸的名稱title(‘string’)——圖形的標(biāo)題text(x,y,‘string’)——在圖中(x,y)處顯示字符串’string’legend(‘string1’,‘string2’,…,position)——給圖形加圖例框,在多條曲線同時繪制時需要標(biāo)注出每條曲線的意義‘string1’,‘string2’,…等。Position的取值為1(缺?。?、2、3、4、-1表示圖例框的位置分別為右上角、左上角、左下角、右下角、圖右側(cè)。2、圖形的控制命令:(3)圖形的標(biāo)注當(dāng)標(biāo)注文字中有特殊字符時,標(biāo)注函數(shù)的‘string1’參數(shù)輸入比較復(fù)雜,需要加入控制字符。一般單引號內(nèi)的字符都原樣照搬,但是單引號內(nèi)的‘\’為轉(zhuǎn)義字符,其后的字符有特殊意義。常用控制字符如下表。標(biāo)注文字中的常用控制字符字符顯示字符顯示‘\pi’π‘\theta’θ‘\alpha’α‘\lambda’λ‘\beta’β‘\tau’τ‘\gamma’γ‘\rho’ρ‘\it’斜體‘\rm’正體‘^{}’上標(biāo)‘_{}’下標(biāo)‘\leftarrow’←‘\rightarrow’→

例3-11

繪制函數(shù)的圖形,并添加標(biāo)注程序代碼:x=0:pi/100:4*pi;y=exp(0.4*x).*sin(5*x);plot(x,y,'LineWidth',3)gridonxlabel('\itt(Time)','FontSize',14)ylabel('\ity(Amplitude)','FontSize',14)title('\ite^{\alphat}\rmsin\beta\itt','FontSize',18)

例3-12

畫出一組參數(shù)曲線,并加圖例框程序代碼:>>x=0:0.2:4;>>y1=0.3*x.^3+5*x.^2-3;>>y2=0.8*y1;>>y3=0.4*y1;>>y4=0.2*y1;>>plot(x,y1,'*-',x,y2,'o-',x,y3,'x-',x,y4,'^-')>>legend('t=1','t=0.8','t=0.4','t=0.2',2)

3.3三維繪圖1、三維曲線圖plot3(x,y,z)——繪制以(x,y,z)為坐標(biāo)的三維空間曲線,x,y,z必須是同維的向量或矩陣,其用法與plot類似,也可以使用線型顏色參數(shù)例3-13繪制5圈空間螺旋線>>t=0:pi/10:10*pi;>>x=sin(t);>>y=cos(t);>>z=t;>>plot3(x,y,z,'o-','LineWidth',2)>>gridonplot3也可以用來表現(xiàn)z與(x,y)間存在函數(shù)關(guān)系的曲線,此時x,y,z必須是同維的矩陣,且x,y的取值應(yīng)均勻布滿整個繪圖區(qū)間,就像在x-y平面上畫了繪圖網(wǎng)格。如x繪圖范圍是1、2、3、4、5;y范圍也是1、2、3、4、5;則要求出x-y平面上每個點(diǎn)對應(yīng)的z坐標(biāo),如圖所示:此時plot3所需的數(shù)據(jù)參數(shù)x,y,z均是矩陣——x,y是網(wǎng)格矩陣,z為x、y矩陣對應(yīng)位置的元素運(yùn)算的結(jié)果。x、y網(wǎng)格矩陣由函數(shù)meshgrid根據(jù)橫軸和縱軸的取值范圍和間隔來產(chǎn)生。[X,Y]=meshgrid(x,y)——x,y為橫軸和縱軸的取值向量,返回的X、Y為網(wǎng)格矩陣。

例3-14

x,y取值范圍為1至5,產(chǎn)生網(wǎng)格矩陣并對比上圖觀察其排列規(guī)律,繪制三維曲線z=x+y。程序代碼:>>x=1:5>>y=1:5>>[X,Y]=meshgrid(x,y)>>Z=X+Y>>plot3(X,Y,Z)>>gridon>>xlabel('X')>>ylabel('Y')>>zlabel('Z')>>

2、三維曲線面圖(1)surf著色表面圖surf(Z)——以矩陣Z的列下標(biāo)為x坐標(biāo),行下標(biāo)為y坐標(biāo),z元素的值為z坐標(biāo)繪制曲面圖。surf(X,Y,Z)——以矩陣X,Y,Z的元素值為x、y、z坐標(biāo)繪制曲面圖,X、Y為網(wǎng)格矩陣。例3-15產(chǎn)生20×30的隨機(jī)矩陣,觀察數(shù)據(jù)變化規(guī)律>>z=rand(20,30);>>surf(z)>>axis([030020-12])>>例3-16

畫出空間中的一個半球體>>x=-1:0.1:1;>>y=-1:0.1:1;>>[X,Y]=meshgrid(x,y);>>Z=sqrt(1-X.^2-Y.^2)>>surf(X,Y,Z)例3-17畫出曲面>>x=-1:0.1:1;>>y=-1:0.1:1;>>[X,Y]=meshgrid(x,y);>>Z=X.^2+Y.^2>>surf(X,Y,Z)常用的產(chǎn)生三維繪圖數(shù)據(jù)的函數(shù)1、產(chǎn)生MATLAB圖標(biāo)的函數(shù):membrane>>membrane常用的產(chǎn)生三維繪圖數(shù)據(jù)的函數(shù)2、雙峰函數(shù):[X,Y,Z]=peaks(n)——產(chǎn)生n×n階的3個用于繪圖的數(shù)據(jù)矩陣X,Y,Z,n缺省為49>>[X,Y,Z]=peaks(30);>>surf(X,Y,Z)常用的產(chǎn)生三維繪圖數(shù)據(jù)的函數(shù)3、柱面函數(shù):[X,Y,Z]=cylinder(r,n)——向量r的元素值是柱面半徑的變化情況,n為柱面每圈的分段數(shù),n缺省為20。>>[X,Y,Z]=cylinder([1325],30);>>surf(X,Y,Z)例3-18畫出半徑按正弦規(guī)律變化的柱面>>t=0:pi/10:2*pi;>>[X,Y,Z]=cylinder(sin(t),30);>>surf(X,Y,Z)>>

2、三維曲線面圖(2)mesh不著色表面圖(網(wǎng)格圖)mesh函數(shù)的功能與surf函數(shù)類似,只是曲面上的各小平面均為白色,也就是只畫出網(wǎng)格線。>>mesh(peaks(30))

2、三維曲線面圖(2)mesh不著色表面圖(網(wǎng)格圖)mesh函數(shù)的功能與surf函數(shù)類似,只是曲面上的各小平面均為白色,也就是只畫出網(wǎng)格線。>>mesh(membrane)例3-19繪制“草帽曲面”,并將其網(wǎng)格曲面做透明處理,對比顯示結(jié)果。>>[X,Y]=meshgrid(-10:0.5:10);>>k=sqrt(X.^2+Y.^2)+eps;>>Z=sin(k)./k;>>surf(Z)>>figure>>mesh(Z)>>figure>>mesh(Z)>>hiddenoff

%不顯示隱藏在圖形后面的網(wǎng)格、使其呈透明狀態(tài)>>

3.4圖形的顏色控制1、RGB三元組MATLAB圖形的顏色均由紅、綠、藍(lán)三種基色調(diào)和產(chǎn)生,稱為RGB三元組。每個元素的取值為[0,1],如[0.30.51]和[]分別表示2種不同的顏色。在函數(shù)需要顏色參數(shù)時,均可用RGB三元組設(shè)定。為了使用方便,MATLAB對常用顏色預(yù)定義了顏色字符,其對應(yīng)的RGB三元組如下表所示:MATLAB常用顏色的RGB值當(dāng)RGB三元組3個元素的取值相等時,表示從白到黑的同步深淺的灰色,如表示的灰色比表示的灰色更淺些。序號顏色字符RGB顏色1(缺省)b[100]藍(lán)色2g[010]綠色3r[001]紅色4c[011]青色5m[101]紫色6y[110]黃色7k[000]黑色8w[111]白色

3.4圖形的顏色控制2、Colomap色圖在繪制曲線時,每條曲線只能使用一種顏色。而在繪制三維曲面時,MATLAB根據(jù)Z坐標(biāo)的取值自動給曲面添加顏色。那么Z坐標(biāo)的大小和顏色間的對應(yīng)關(guān)系如何確定呢?MATLAB每個圖形窗口都有一個色圖——Colormap,它是由許多顏色按一定順序排列形成的一套顏色表。例如:包含m中顏色的Colormap為m×3的矩陣,每行是一組RGB值。Z坐標(biāo)的大小不同就對應(yīng)著顏色表中不同位置上的顏色值:Z坐標(biāo)的最小值就對應(yīng)顏色表中第1行(第1種顏色),Z坐標(biāo)的最大值對應(yīng)顏色表的末行。Colormap可以靈活設(shè)置,如執(zhí)行如下語句>>a=[000;001;010;100;111]a=000001010100111>>colormap(a)>>peaks則Figure的Colormap被設(shè)為僅有5種顏色的矩陣,此時peaks函數(shù)繪制的曲面僅有5種顏色,如圖所示:為了使用方便,MATLAB對常用的Colormap預(yù)定義了色圖矩陣MAP,調(diào)用函數(shù)Colormap(MAP)即可將其設(shè)為當(dāng)前圖形窗口的色圖。一些MATLAB預(yù)定義的色圖矩陣MAP如下表所示:MATLAB預(yù)定義的色圖矩陣MAP色圖hot暖色調(diào)cool冷色調(diào)gray灰色調(diào)pink粉紅色調(diào)spring黃粉色調(diào)summer黃綠色調(diào)autumn黃紅色調(diào)winter藍(lán)綠色調(diào)jet由藍(lán)到紅飽和色調(diào)(缺省)例如執(zhí)行如下程序:>>sphere例如執(zhí)行如下程序:>>sphere>>colormap(summer)

第4章數(shù)值運(yùn)算4.1數(shù)據(jù)分析MATLAB的StatisticToolbox統(tǒng)計工具箱提供了大量函數(shù)進(jìn)行數(shù)據(jù)的統(tǒng)計和概率分析。常用的數(shù)據(jù)統(tǒng)計函數(shù)如下表:函數(shù)名說明sort按升序排列元素sortrows按升序排列各行max元素的最大值min元素的最小值sum元素的和cumsum元素的累計和prod元素的積cumprod元素的累計積trapz按梯形法求元素的數(shù)值積分MATLAB基本數(shù)據(jù)統(tǒng)計函數(shù)函數(shù)名說明cumtrapz按梯形法求元素的累計數(shù)值積分median元素的中位值mean元素的平均值std元素的方差var元素的標(biāo)準(zhǔn)差統(tǒng)計函數(shù)的輸入?yún)?shù)是行向量或列向量時,運(yùn)算針對整個向量進(jìn)行;輸入?yún)?shù)是矩陣時,運(yùn)算針對矩陣的列向量進(jìn)行,即執(zhí)行“列優(yōu)先”的原則。在輸入待統(tǒng)計的數(shù)據(jù)時需要將同一個物理量的n次測得值寫成一列、不同的物理量寫成一行。

1、差分diff(X,n)——計算X的n階差分,缺省值為1。n階差分是將前一階差分的運(yùn)算結(jié)果再作差分:diff(X,n+1)=diff(diff(X,n))

例4-1

差分運(yùn)算舉例4.2最小二乘擬合例4-2

已知x和y之間的關(guān)系為立方關(guān)系通過實(shí)驗觀測到一組數(shù)據(jù)如下表,求x和y之間的關(guān)系式并畫曲線。序號1234567891011x-5-4-3-2-1012345y-182-70.8-53.6-80.8-6.28.993270.6180.3程序清單:>>x=[-5:5]';>>y=[-182-70.8-53.6-80.8-6.28.993270.6180.3]';>>A=[x.^3ones(size(x))]>>K=A\y>>plot(x,y,'ko','LineWidth',2,'MarkerSize',8)>>holdon>>x2=[-5:0.1:5]';>>A2=[x2.^3ones(size(x2))];>>y2=A2*K;>>plot(x2,y2,'r-','LineWidth',2)>>holdoff4.3多項式擬合MATLAB用多項式系數(shù)行向量[p0,p1,…,pn-1,pn]來表示多項式。區(qū)別普通的行向量與多項式主要看其后是否使用了多項式運(yùn)算的函數(shù),是則表示為多項式。為了看清系數(shù)行向量與其代表的多項式間的對應(yīng)關(guān)系,可使用函數(shù)poly2sys函數(shù)將系數(shù)行向量轉(zhuǎn)化為符號化的表示。例如:將(x-2)(x-3)(x-5)展為多項式:x3-10x2+31x-30例4-3:將(x-2)(x-3)(x-5)展為多項式:x3-10x2+31x-30>>a=[235];>>poly2sys(a)%使用函數(shù)poly2sys函數(shù)將系數(shù)行向量轉(zhuǎn)化為符號化的表示ans=2*x^2+3*x+5>>>>>>poly([235])%將(x-2)(x-3)(x-5)展為多項式:x3-10x2+31x-30ans=1-1031-30多項式常用函數(shù)函數(shù)名說明polyval(P,x)將x帶入多項式P,按數(shù)組運(yùn)算規(guī)則求值polyvalm(P,x)將x帶入多項式P,按矩陣運(yùn)算規(guī)則求值conv(P,Q)向量P、Q卷積,即多項式乘法deconv(P,Q)向量P、Q卷積的逆運(yùn)算,即多項式除法polyder(P)求多項式P的微分polyint(P)求多項式P的積分rost(P)求表達(dá)式P=0的根,當(dāng)有多個根時,將它們排列成列向量。polyfit(X,Y,n)X,Y為一組原始數(shù)據(jù)點(diǎn)對,此函數(shù)求出它們的n階你和多項式P,使得polyval(P,X)與Y接近,各元素誤差平方和最?。M足最小二乘)例4-4

用多項式擬合復(fù)雜函數(shù)。γ函數(shù)是一種特殊數(shù)據(jù)函數(shù),其定義為MATLAB函數(shù)庫中提供了gamma()用于計算γ函數(shù)。試用4階多項式在區(qū)間[4,5]上擬合γ函數(shù)。程序代碼如下:程序清單:>>x=4:0.1:5;>>y=gamma(x);>>p=polyfit(x,y,4);>>yp=polyval(p,x);>>plot(x,y,'k*-',x,yp,'r-','MarkerSize',10,'LineWidth',2)>>gridon>>4.4插值MATLAB提供的插值函數(shù)常用的如下:1、一維插值函數(shù)—yi=interp1(X,Y,xi,’method’)X,Y是原始數(shù)據(jù)對,必須單調(diào)排列,多為等間隔。xi給出插值點(diǎn)的橫坐標(biāo)(一般xi的范圍與X范圍相同,但元素個數(shù)較多)yi為求得的插值點(diǎn)的縱坐標(biāo)method為插值方法,可選方法有4種:’nearest’、’linear’、’cubic’、’spline’。4.4插值MATLAB提供的插值函數(shù)常用的如下:2、二維插值函數(shù)—zi=interp2(X,Y,Z,xi,yi,’method’)定義與一維類似。例4-5:對比不同插值方法效果程序代碼:>>closeall>>x=0:6;>>y=0:6;>>[X,Y]=meshgrid(x,y);>>Z=randn(size(X));>>xi=0:0.1:6;>>yi=0:0.1:6;>>[XI,YI]=meshgrid(xi,yi);>>ZI1=interp2(X,Y,Z,XI,YI,'nearest');>>surf(XI,YI,ZI1)>>figure>>ZI2=interp2(X,Y,Z,XI.YI,'linear');>>ZI2=interp2(X,Y,Z,XI,YI,'linear');>>surf(XI,YI,ZI2)>>figure>>ZI3=interp2(X,Y,Z,XI,YI,'cubic');>>surf(XI,YI,ZI3)>>figure>>ZI4=interp2(X,Y,Z,XI,YI,'spline');>>surf(XI,YI,ZI4)

5.1MATLAB的數(shù)據(jù)類型1、數(shù)值數(shù)組

5MATLAB程序設(shè)計基礎(chǔ)2、字符數(shù)組3、字符串操作函數(shù)4、結(jié)構(gòu)數(shù)組例5-1:創(chuàng)建一個存儲學(xué)生綜合信息的結(jié)構(gòu)變量S,其域名和取值如下表:創(chuàng)建結(jié)構(gòu)變量S的命令如下:>>S.Name=‘JohnSmith’>>S.SerialNumber=‘200700504033’>>S.Age=int8(21)

溫馨提示

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

評論

0/150

提交評論