MATLAB編程入門(mén)培訓(xùn)教材課件_第1頁(yè)
MATLAB編程入門(mén)培訓(xùn)教材課件_第2頁(yè)
MATLAB編程入門(mén)培訓(xùn)教材課件_第3頁(yè)
MATLAB編程入門(mén)培訓(xùn)教材課件_第4頁(yè)
MATLAB編程入門(mén)培訓(xùn)教材課件_第5頁(yè)
已閱讀5頁(yè),還剩35頁(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編程入門(mén) 目 錄第1章 MATLAB簡(jiǎn)介第2章 MATLAB基本語(yǔ)法2.1 變量及其賦值2.2 矩陣的初等運(yùn)算2.3 元素群運(yùn)算2.4 邏輯判斷及流程控制2.5 M文件及程序調(diào)試第一章 MATLAB簡(jiǎn)介 MATLAB(MATrix LABoratory,即矩陣實(shí)驗(yàn)室)是MathWork公司推出的一套高效率的數(shù)值計(jì)算和可視化軟件。 MATLAB是當(dāng)今科學(xué)界最具影響力、也是最具活力的軟件,它起源于矩陣運(yùn)算,并已經(jīng)發(fā)展成一種高度集成的計(jì)算機(jī)語(yǔ)言。 它提供了強(qiáng)大的科學(xué)運(yùn)算、靈活的程序設(shè)計(jì)流程、高質(zhì)量的圖形可視化與界面設(shè)計(jì)、便捷的與其他程序和語(yǔ)言接口的功能。 MATLAB語(yǔ)言有如下優(yōu)點(diǎn): 1

2、.編程簡(jiǎn)單使用方便 MATLAB的基本數(shù)據(jù)單元是既不需要指定維數(shù)、也不需要說(shuō)明數(shù)據(jù)類(lèi)型的矩陣,而且數(shù)學(xué)表達(dá)式和運(yùn)算規(guī)則與通常的習(xí)慣相同。因此,在MATLAB環(huán)境下,數(shù)組的操作與數(shù)的操作一樣簡(jiǎn)單。 MATLAB的矩陣和向量操作功能是其他語(yǔ)言無(wú)法比擬的。 2.函數(shù)庫(kù)可任意擴(kuò)充 由于MATLAB語(yǔ)言庫(kù)函數(shù)與用戶文件的形式相同,所以用戶文件可以像庫(kù)函數(shù)一樣隨意調(diào)用。所以用戶可根據(jù)自己的需要任意擴(kuò)充函數(shù)庫(kù)。 3.語(yǔ)言簡(jiǎn)單內(nèi)涵豐富 MATLAB語(yǔ)言中最重要的成分是函數(shù),其一般形式為: Function a,b,c=fun(d,e,f) fun是自定義的函數(shù)名,只要不與庫(kù)函數(shù)名相重,并且符合字符串的書(shū)寫(xiě)規(guī)則

3、即可。這里的函數(shù)既可以是數(shù)學(xué)上的函數(shù),也可以是程序塊或子程序,內(nèi)涵十分豐富。每個(gè)函數(shù)建立一個(gè)同名的M文件,如上述函數(shù)的文件名為fun.m。這種文件簡(jiǎn)單、短小、高效,并且便于調(diào)試。 4.簡(jiǎn)便的繪圖功能 MATLAB具有二維和三維繪圖功能,使用方法十分簡(jiǎn)便。而且用戶可以根據(jù)需要在坐標(biāo)圖上加標(biāo)題。坐標(biāo)軸標(biāo)記。文本注釋及柵格等,也可以指定圖線形式(如實(shí)線、虛線等)和顏色,也可以在同一張圖上畫(huà)不同函數(shù)的曲線,對(duì)于曲面圖還可以畫(huà)出等高線。 5.豐富的工具箱 由于MATLAB的開(kāi)放性,許多領(lǐng)域的專(zhuān)家都為MATLAB編寫(xiě)了各種程序工具箱。 這些工具箱提供了用戶在特別應(yīng)用領(lǐng)域所需的許多函數(shù),這使得用戶不必花大量

4、的時(shí)間編寫(xiě)程序就可以直接調(diào)用這些函數(shù),達(dá)到事半功倍的效果。第二章 MATLAB基本語(yǔ)法2.1 變量及其賦值(1)標(biāo)識(shí)符與數(shù) 標(biāo)識(shí)符是標(biāo)識(shí)變量名、常量名、函數(shù)名和文件名的字符串的總稱。標(biāo)識(shí)符可以是英文字母、數(shù)字和下劃線等符號(hào)。標(biāo)識(shí)符第1個(gè)字符必須是英文字母,MATLAB對(duì)大、小寫(xiě)敏感。 MATLAB只有一種數(shù)據(jù)格式,雙精度(即64位)二進(jìn)制,對(duì)應(yīng)于十進(jìn)制16位有效數(shù)和308次冪。(2)矩陣及其元素的賦值變量=表達(dá)式(數(shù))a=1 2 3; 4 5 6;7 8 9x=-1.3 sqrt(3) (1+2+3)/5*4x(5)=abs(x(1)a(4,3)=6.5a = 1.0000 2.0000 3.

5、0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 0 0 6.5000 元素之間用逗號(hào)、空格分開(kāi)。不同行以分號(hào)隔開(kāi)。語(yǔ)句結(jié)尾用回車(chē)或逗號(hào),會(huì)顯示結(jié)果,如果不想顯示結(jié)果,用分號(hào)。 元素用()中的數(shù)字(下標(biāo))來(lái)注明,一維用一個(gè)下標(biāo),二維用兩個(gè)下標(biāo),逗號(hào)分開(kāi)。 a(5,:)=5,4,3b=a(2,3,1,3)a(2,4,5, : )=a/7 如果賦值元素的下標(biāo)超過(guò)原來(lái)矩陣的大小,矩陣的行列會(huì)自動(dòng)擴(kuò)展。 全行賦值,用冒號(hào)。 提取交點(diǎn)元素; 抽取某行元素用空矩陣。 (4)變量檢查whowhosinfNaN 檢查工作空間中的變量; 檢查變量的詳細(xì)特征 無(wú)窮大 1

6、/0; 非數(shù)(Not a Number) 0/0 inf/inf 0*inf。 系統(tǒng)不停止運(yùn)算,結(jié)果仍為inf或NaN。(5)基本賦值矩陣f1=ones(3,2)f2=zeros(2,3)f4=eye(2) 全1矩陣 全0矩陣 單位矩陣是nn階的方陣。對(duì)角線上元素為1。2.2 矩陣的初等運(yùn)算(3_3計(jì)應(yīng)1、2)(1)矩陣的加減乘法i. 加、減法:相加減的兩矩陣階數(shù)必須相同,對(duì)應(yīng)元素相加減。n,m=size(fb2)x=-1 0 1; y=x-1y = -2 -1 0 語(yǔ)句size檢查矩陣階數(shù),兩矩陣相加,階數(shù)必須相同。 兩相加減的矩陣中有一個(gè)是標(biāo)量時(shí),MATLAB將標(biāo)量擴(kuò)展成同等元素矩陣,與另

7、一矩陣相加減。 (4)矩陣結(jié)構(gòu)形式的提取與變換A=8 1 6 0; 3 5 7 1; 4 9 2 2B1=fliplr(A)B2=flipud(A)B3=reshape(A,2,6) 提取矩陣中某些特殊結(jié)構(gòu)的元素, 組成新的矩陣,改變矩陣結(jié)構(gòu)。 fliplr矩陣左右翻轉(zhuǎn) flipud矩陣上下翻轉(zhuǎn) reshape階數(shù)重組(元素總數(shù)不變)B8=A(: ) 將元素按列取出排成一列 A = 8 1 6 0 3 5 7 1 4 9 2 2B1=fliplr(A)B1 = 0 6 1 8 1 7 5 3 2 2 9 4B2=flipud(A)B2 = 4 9 2 2 3 5 7 1 8 1 6 0B3=r

8、eshape(A,2,6)B3 = 8 4 5 6 2 1 3 1 9 7 0 2B4=rot90(A)B4 = 0 1 2 6 7 2 1 5 9 8 3 4B5=diag(A)B5 = 8 5 2B6=tril(A)B6 = 8 0 0 0 3 5 0 0 4 9 2 0B7=triu(A)B7 = 8 1 6 0 0 5 7 1 0 0 2 2B8=A(: ) B8 =8 3 4 1 5 9 6 7 2 0 1 22.3 元素群運(yùn)算(1)數(shù)組及其賦值數(shù)組是單行或單列的矩陣,一個(gè)N階的數(shù)組可以表述為一個(gè)N組向量。t=0 : 0.02 : 1z=10 : -3: -5k=1 : 6用兩個(gè)冒號(hào)

9、組成等增量語(yǔ)句格式:t=初值:增量:終值增量也可以設(shè)為負(fù)值,此時(shí)初值要比終值大增量為1時(shí),增量值可以省略。(2)元素群的四則運(yùn)算和冪次運(yùn)算 元素群的運(yùn)算是矩陣中所有元素按單個(gè)元素運(yùn)算。運(yùn)算符前加.號(hào),表示元素群運(yùn)算。 元素群的運(yùn)算的兩個(gè)矩陣必須是同階的。(標(biāo)量會(huì)自動(dòng)擴(kuò)展為同階矩陣參與運(yùn)算)x=1, 2, 3y=4, 5, 6z=x.*yz=x.yz=x.yz=x.2z =4 10 18 x*y不能成立z =4.0 2.5 2.0 元素群沒(méi)有左除右除之分z =1 32 729 xy 能成立嗎?z =1 4 9 x2能成立嗎?(3)元素群的函數(shù) 除矩陣運(yùn)算的乘、右除、左除、冪指數(shù)( / )、sqr

10、tm、expm、logm函數(shù)外,基本函數(shù)庫(kù)中的常用函數(shù)都可用于元素群運(yùn)算。自變量可以是任意階的矩陣。 基本函數(shù)庫(kù)(elfun)x=0: 0.1: pi/4x = 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000disp(顯示 x sin(x) cos(x) tan(x)disp(x, sin(x) cos(x) tan(x) 顯示 x sin(x) cos(x) tan(x) 0 0 1.0000 0 0.1000 0.0998 0.9950 0.1003 0.2000 0.1987 0.9801 0.2027 0.3000 0.2955 0

11、.9553 0.3093 0.4000 0.3894 0.9211 0.4228 0.5000 0.4794 0.8776 0.5463 0.6000 0.5646 0.8253 0.6841 0.7000 0.6442 0.7648 0.84232.4 邏輯判斷及流程控制 1. 關(guān)系運(yùn)算a= 2+2=4a=(2+2=4)a=(34)a=(43)a=(3=4)a=(43)a=(34)等于a = 1a = 1小于a = 1 a = 0小于等于a = 1a = 0大于a =1a =0a=(4=3)a=(3=4)a=(3=4)A=magic(6)rem(A,3)p=(rem(A, 3)=0)lp=f

12、ind (p) 大于等于a=1a=0不等于a=1魔方矩陣,每行、每列、對(duì)角線的元素之和=(n3+n)/2A整除3,求余數(shù)余數(shù)為0,是真,即整除找出p矩陣中不為零元素的序號(hào),矩陣元素是按列排序號(hào)的。A=magic(6)A =35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14 16 4 36 29 13 18 11rem(A,3)ans = 2 1 0 2 1 0 0 2 1 0 2 1 1 0 2 1 0 2 2 1 0 2 1 0 0 2 1 0 2 1 1 0 2 1 0 2p=(rem

13、(A, 3)=0)p =0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0lp=find (p) lp=2 5 9 12 13 16 20 23 27 30 31 34矩陣元素的序號(hào)排法: nm陣中下標(biāo)為(j,k)的元素序號(hào)為 l=(k-1)*n+j171319253128142026323915212733410162228345111723293561218243036符號(hào)意義符號(hào)意義符號(hào)意義+加-減*矩陣乘矩陣左除/矩陣右除矩陣乘冪.*矩陣元素乘./矩陣元素除.矩陣元素乘冪( )優(yōu)先,下標(biāo)輸入?yún)⒘?/p>

14、矩陣,向量輸入變量:整行(列)等增量賦值.小數(shù)點(diǎn).母目錄行命令延續(xù)符,語(yǔ)句分割符,顯示;語(yǔ)句分割符,不顯示=賦值符轉(zhuǎn)置,引用!操作系統(tǒng)命令%注釋符=關(guān)系相等符關(guān)系大小符=關(guān)系不等符&邏輯與|邏輯或邏輯非xor異或kronKronecker積數(shù)學(xué)及邏輯運(yùn)算符號(hào) exist檢查變量或函數(shù)是否有定義any檢查向量中有無(wú)非零元素all檢查向量中元素是否全為非零find找到非零元素的序號(hào)isnan元素為NaN時(shí)得1isinf元素為Inf時(shí)得1isfinite元素為有限值時(shí)得1isempty矩陣為空陣時(shí)得1isreal矩陣為實(shí)數(shù)陣時(shí)得1issparse矩陣為稀疏陣時(shí)得1isstr為文本字符串時(shí)得1isgl

15、obal變量為全局變量時(shí)得1bitand按位求“與”bitcmp按位求“非”(補(bǔ))bitor按位求“或”bitmax最大浮點(diǎn)整數(shù)bitxor按位求“異或”bitset設(shè)置位bitget獲取位bitshift按位移動(dòng)union集合“合”unique去除集合中的重復(fù)元素intersect集合“交”setdiff集合“差”setxor集合“異或”ismember是集合中的元素時(shí)為真邏輯字符檢查 位運(yùn)算 集合運(yùn)算 2. 邏輯運(yùn)算A=0 0 1 1B=0 1 0 1A&BA|BAxor(A, B)將邏輯運(yùn)算用于元素群,得出同階的0-1矩陣。與或非異或3. 流程控制語(yǔ)句(1)if語(yǔ)句if (表達(dá)式) 語(yǔ)句

16、組A,endif (表達(dá)式1) 語(yǔ)句組A,else 語(yǔ)句組B,endif (表達(dá)式1) 語(yǔ)句組A,elseif (表達(dá)式2) 語(yǔ)句組B,else 語(yǔ)句組C,end n=input( n=), if rem(n, 2)=0 a=even, else a=odd, end n = 7 a =odd; n = 8 a =even n = a =odd n=input( n=), if isempty(n)=1 a=empty, elseif rem(n,2)=0 a=even, else a=odd, end n = a =empty 輸入數(shù)n,判斷奇偶性。如果用戶沒(méi)有鍵入數(shù)就回車(chē),程序會(huì)判斷為od

17、d。 修改為用戶無(wú)輸入時(shí)程序自動(dòng)中止。(2)while語(yǔ)句while (表達(dá)式) 語(yǔ)句組A,endx=1; while x=inf, x1=x; x=2*x; end, x1x1 = 8.9885e+307x=1; while x=inf, x1=x; x=1.1*x; end, x1x1 =1.7837e+308求MATLAB中的最大實(shí)數(shù)。X不斷增大,直到無(wú)法表示它的值,只能用inf表示為止。y=1; while 1+y1, y1=y y=y/2; end, y1 y1 =2.2204e-016求MATLAB相對(duì)精度,y不斷減小,直至MATLAB分不出1+y與1的差別為止。 (3) for語(yǔ)

18、句for k= 初值:增量:終值 語(yǔ)句組A,end將語(yǔ)句組A反復(fù)執(zhí)行N次,每次執(zhí)行時(shí)程序中的k值不同。N=1+(終值-初值)/增量用for語(yǔ)句求三角函數(shù)表for x=0: 0.1: pi/4 disp(x, sin(x), cos(x), tan(x), end運(yùn)行結(jié)果 x sin(x) cos(x) tan(x) 0 0 1 0 1/10 839/8404 1195/1201 1499/14940 1/5 209/1052 295/301 374/1845 3/10 409/1384 1647/1724 275/889 2/5 368/945 2882/3129 1777/4203 1/2

19、501/1045 1699/1936 820/1501 3/5 1153/2042 430/521 979/1431 7/10 947/1470 992/1297 486/577 break, continue 1、兩種語(yǔ)句一般應(yīng)在循環(huán)語(yǔ)句中。 2、break 是中止循環(huán)的命令,在多重循環(huán)中,break只能使程序跳出包含它的最內(nèi)部的那個(gè)循環(huán)。 3、 continue 是中止本次循環(huán),執(zhí)行下一次循環(huán)。(4)switch語(yǔ)句switch-case-otherwiseswitch 表達(dá)式(標(biāo)量或字符串)case 值1語(yǔ)句組ACase 值2語(yǔ)句組B.Otherwise語(yǔ)句組Nend 當(dāng)表達(dá)式的值(或字

20、符串)與某case語(yǔ)句中的值(或字符串)相同時(shí),它就執(zhí)行該case語(yǔ)句后的語(yǔ)句組,然后跳到終點(diǎn)的end。 case語(yǔ)句可以有N-1個(gè),如果沒(méi)有任何一個(gè)case值能與表達(dá)式值相符,則執(zhí)行otherwise后面的語(yǔ)句組N。n=input( n=), switch mod(n,2), case 1, a=奇, case 0, a=偶, otherwise, a=空, endn = 5 a =奇n=input( n=), switch rem(n,2), case 1, a=奇, case 0, a=偶, otherwise, a=空, end n = 8 a =偶判斷輸入數(shù)n的奇、偶、空的程序mod

21、(x,m)x整除m取正余數(shù),rem(a,b) a整除b,求余數(shù)n= 負(fù)數(shù) n = -5 a =奇n=-8a =偶2.5 M文件、M函數(shù)及程序調(diào)試M文件是文本文件,擴(kuò)展名*.m。(example.m)可以用任何編輯器來(lái)建立,可直接閱讀。MATLAB程序可直接調(diào)用M文件并執(zhí)行。M文件分為兩種:一種是主程序,為用戶解決特定的問(wèn)題編制的;一種是子程序,函數(shù)文件,必須由其他M文件來(lái)調(diào)用,函數(shù)文件可以遞歸調(diào)用(自己調(diào)用自己)。MATLAB軟件的大部分功能是來(lái)自其建立的函數(shù)集。1主程序文件主程序文件格式特征:(1)用clear 、close all等語(yǔ)句開(kāi)始,清除原有的變量和圖形。注釋行以%號(hào)開(kāi)始,增加可讀

22、性。MATLAB不執(zhí)行%號(hào)后面的任何內(nèi)容。在鍵入“help 文件名example.m”時(shí),屏幕會(huì)顯示以%號(hào)起始的行的內(nèi)容,注釋可以是漢字的。(2)程序的主體全局變量:在子程序中和主程序中共用的變量。應(yīng)在程序的起始部分注明。全局變量語(yǔ)句:global 變量名1 變量名2 程序必須用半角英文字母和符號(hào)編制(包括標(biāo)點(diǎn)符號(hào)),只有%號(hào)后面的注釋可以用中文。要注意流程控制語(yǔ)句的縮進(jìn)及與end的對(duì)應(yīng)關(guān)系。選項(xiàng)可以自動(dòng)對(duì)程序進(jìn)行縮進(jìn)排版。元素之間用逗號(hào)、空格分開(kāi)。不同行以分號(hào)隔開(kāi)。語(yǔ)句結(jié)尾用回車(chē)或逗號(hào),會(huì)顯示結(jié)果,如果不想顯示結(jié)果,用分號(hào)。 (3)M文件的文件名、路徑名不能用中文,要按MATLAB的標(biāo)識(shí)符編

23、制,因?yàn)镸文件也就是MATLAB的調(diào)用命令。在MATLAB的命令窗鍵入程序的M文件名后,系統(tǒng)就開(kāi)始執(zhí)行M文件中的程序。 例1列出一個(gè)求fibonnaci數(shù)的程序,它是一個(gè)數(shù)列,從1,1開(kāi)始,由數(shù)列的最后兩個(gè)元素之和生成新的元素,依次遞推。%計(jì)算fibonnaci數(shù)的M文件clear,close allN=input(輸入最大數(shù)值范圍 N=) f=1,1; i=1; %變量的初始化while f(i)+f(i+1)N %循環(huán)條件檢驗(yàn)f(i+2)=f(i+1)+f(i); i=i+1; %求fibonnaci數(shù)的算式endf,plot(f) %顯示和繪圖輸入最大數(shù)值范圍 N=20N = 20f =

24、 1 1 2 3 5 8 13將程序以文件名fibon.m存入一MATLAB搜索目錄下,在MATLAB命令窗中鍵入fibon,即可執(zhí)行。例2求素?cái)?shù)的程序。只能被自身和1除凈的數(shù)。%求素?cái)?shù)(prime number)的程序clear, close allN=input(N=), x=2:N;for u=2:sqrt(N) n=find (rem(x, u)=0 & x=u);x(n)= ;end, x N = 44x =2 3 5 7 11 13 17 19 23 29 31 37 41 43人機(jī)交互命令:echo on(off) 在執(zhí)行M文件每行程序前先顯示其內(nèi)容。pause(n) 程序執(zhí)行到此,暫停n秒,再繼續(xù)。keyboard程序執(zhí)行到此暫停,在屏幕上顯示字符K,用戶可以在命令窗進(jìn)行任何操作,鍵入字符串return,恢復(fù)運(yùn)行原來(lái)的程序。input(提示符) 程序執(zhí)行到此暫停,屏幕顯示引號(hào)中的字符串,要求用戶輸入數(shù)據(jù)。數(shù)據(jù)輸入后,程序繼續(xù)運(yùn)行。c (contro

溫馨提示

  • 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)論