matlab教程第一講_第1頁
matlab教程第一講_第2頁
matlab教程第一講_第3頁
matlab教程第一講_第4頁
matlab教程第一講_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一講 MatLab簡介及基本運算一、MatLab簡介MATLAB名字由MATrix和 LABoratory 兩詞的前三個字母組合而成。那是20世紀七十年代后期的事:時任美國新墨西哥大學計算機科學系主任的Cleve Moler教授出于減輕學生編程負擔的動機,為學生設計了一組調(diào)用LINPACK和EISPACK庫程序的“通俗易用”的接口,此即用FORTRAN編寫的萌芽狀態(tài)的MATLAB。經(jīng)幾年的校際流傳,在Little的推動下,由Little、Moler、Steve Bangert合作,于1984年成立了MathWorks公司,并把MATLAB正式推向市場。從這時起,MATLAB的內(nèi)核采用C語言編

2、寫,而且除原有的數(shù)值計算能力外,還新增了數(shù)據(jù)圖視功能。MATLAB以商品形式出現(xiàn)后,僅短短幾年,就以其良好的開放性和運行的可靠性,使原先控制領域里的封閉式軟件包(如英國的UMIST,瑞典的LUND和SIMNON,德國的KEDDC)紛紛淘汰,而改以MATLAB為平臺加以重建。在時間進入20世紀九十年代的時候,MATLAB已經(jīng)成為國際控制界公認的標準計算軟件。 在歐美大學里,諸如應用代數(shù)、數(shù)理統(tǒng)計、自動控制、數(shù)字信號處理、模擬與數(shù)字通信、時間序列分析、動態(tài)系統(tǒng)仿真等課程的教科書都把MATLAB作為內(nèi)容。這幾乎成了九十年代教科書與舊版書籍的區(qū)別性標志。在那里,MATLAB是攻讀學位的大學生、碩士生、

3、博士生必須掌握的基本工具。在國際學術界,MATLAB已經(jīng)被確認為準確、可靠的科學計算標準軟件。在許多國際一流學術刊物上,(尤其是信息科學刊物),都可以看到MATLAB的應用。在設計研究單位和工業(yè)部門,MATLAB被認作進行高效研究、開發(fā)的首選軟件工具。如美國National Instruments公司信號測量、分析軟件LabVIEW,Cadence公司信號和通信分析設計軟件SPW等,或者直接建筑在MATLAB之上,或者以MATLAB為主要支撐。又如HP公司的VXI硬件,TM公司的DSP,Gage公司的各種硬卡、儀器等都接受MATLAB的支持。MATLAB具有用法簡易、可靈活運用、程式結構強又兼

4、具延展性。以下為其幾個特色: 功能強的數(shù)值運算 - 在MATLAB環(huán)境中,有超過500種數(shù)學、統(tǒng)計、科學及工程方面的函數(shù)可使用,函數(shù)的標示自然,使得問 題和解答像數(shù)學式子一般簡單明了,讓使用者可全力發(fā)揮在解題方面,而非浪費在電腦操作上。 先進的資料視覺化功能 - MATLAB的物件導向圖形架構讓使用者可執(zhí)行視覺數(shù)據(jù)分,并制作高品質(zhì)的圖形,完成科學性或工程 性圖文并茂的文章。 高階但簡單的程式環(huán)境 - 作為一種直譯式的程式語言,MATLAB容許使用者在短時間內(nèi)寫完程式,所花的時間約為用 FORTRAN 或 C 的幾分之一,而且不需要編譯(compile)及聯(lián)結 (link) 即能執(zhí)行,同時包含了

5、更多及更容易使用的內(nèi)建 功能。 開放及可延伸的架構 - MATLAB容許使用者接觸它大多數(shù)的數(shù)學原使碼,檢視運算法,更改現(xiàn)存函數(shù),甚至加入自己的函數(shù)使 MATLAB成為使用者所須要的環(huán)境。 豐富的程式工具箱 - MATLAB的程式工具箱融合了套裝前軟體的優(yōu)點,與一個靈活的開放但容易操作之環(huán)境,這些工具箱提 供了使用者在特別應用領域所需之許多函數(shù)?,F(xiàn)有工具箱有:符號運算(利用Maple V的計算核心執(zhí)行 )、影像處理、統(tǒng)計分析、訊號處理、神經(jīng)網(wǎng)路、模擬分析、控制系統(tǒng)、即時控制、系統(tǒng)確認、強建控 制、弧線分析、最佳化、模糊邏輯、mu分析及合成、化學計量分析。 二、MatLab界面MATLAB系統(tǒng)命

6、令命 令含 義help在線幫助helpwin在線幫助窗口helpdesk在線幫助工作臺demo運行演示程序ver版本信息readme顯示Readme文件who顯示當前變量whos顯示當前變量的詳細信息clear清空工作間的變量和函數(shù)pack整理工作間的內(nèi)存load把文件調(diào)入變量到工作間save把變量存入文件中quit/exit退出MATLABwhat顯示指定的matlab文件lookfor在HELP里搜索關鍵字which定位函數(shù)或文件path獲取或設置搜索路徑echo命令回顯cd改變當前的工作目錄pwd顯示當前的工作目錄dir顯示目錄內(nèi)容unix執(zhí)行unix命令dos執(zhí)行dos命令!執(zhí)行操作系

7、統(tǒng)命令computer顯示計算機類型在MATLAB系統(tǒng)中使用幫助方式有三: 1. 是利用help指令,如果你已知要找的題材 (topic) 為何的話,直接鍵入help 。所以即使身旁沒有使用手冊,也可以使用help指令查詢不熟悉的指令或是題材之用法,例如help sqrt 2. 是利用lookfor指令,它可以從你鍵入的關鍵字(key-word)(即使這個關鍵字并不是MATLAB的指令)列出 所有相關的題材,例如lookfor cosine, lookfor sine。 3. 是利用指令視窗的功能選單中的Help,從中選取Table of Contents(目錄)或是Index(索引)。 三、

8、基本數(shù)學運算在MATLAB下進行基本數(shù)學運算,只需將運算式直接打在提示號 后面,并按入Enter鍵即可。MATLAB將計算 的結果以ans顯示?!纠壳蟮乃阈g運算結果。(1)用鍵盤在MATLAB指令窗中輸入以下內(nèi)容 (12+2*(7-4)/32 (2)在上述表達式輸入完成后,按【Enter】鍵,該就指令被執(zhí)行。(3)在指令執(zhí)行后,MATLAB指令窗中將顯示以下結果。ans = 2 我們也可給運算式的結果設定一個變量x: x = (5*2+1.3-0.8)*102/25 x = 42 變量x的值可以在下個語句中調(diào)用: y= 2*x+1y = 85 變量命名規(guī)則:1. 變量名的大小寫是敏感。2.

9、變量的第一個字符必須為英文字母,而且不能超過31個字符。3. 變量名可以包含下連字符、數(shù)字,但不能為空格符、標點。系統(tǒng)預定義的變量ans預設的計算結果的變量名epsMATLAB定義的正的極小值=2.2204e-16pi內(nèi)建的值(= 3.)inf值,無限大 ( )NaN無法定義一個數(shù)目 ( )i 或 j虛數(shù)單位i=j=nargin函數(shù)輸入?yún)?shù)個數(shù)nargout函數(shù)輸出參數(shù)個數(shù)realmax最大的正實數(shù)realmin最小的正實數(shù)flops浮點運算次數(shù)而鍵入clear則是去除所有定義過的變量名稱。表達式MATLAB書寫表達式的規(guī)則與“手寫算式”差不多相同,但要求所有表達式都是以純文本形式輸入。如果一

10、個指令過長可以在結尾加上.(代表此行指令與下一行連續(xù)), 例如: 1*2+3*4+5*6+7*8+9*10+11*12+.13*14+15*16ans =744若不想讓MATLAB每次都顯示運算結果,只需在運算式最後加上分號(;)即可,如下例: y = 1034*22+35; 若要顯示變數(shù)y的值,直接鍵入y即可: y y = 22991 MATLAB會忽略所有在百分比符號(%)之後的文字,因此百分比之後的文字均可視為程式的注解(Comments)。例:計算圓面積Area = ,半徑r = 2,則可鍵入 r=2; % 圓半徑r = 2, area=pi*r2; % 計算圓面積area area

11、= 12.5664MATLAB提供基本的算術運算有: 加 (+)、減 (-)、乘 (*)、除 (/)、冪次方 (),范例為:5+3, 5-3, 5*3, 5/3, 53MATLAB常用數(shù)學函數(shù)l 三角函數(shù)和雙曲函數(shù)名稱含義名稱含義名稱含義sin正弦csc余割atanh反雙曲正切cos余弦asec反正割acoth反雙曲余切tan正切acsc反余割sech雙曲正割cot余切sinh雙曲正弦csch雙曲余割asin反正弦cosh雙曲余弦asech反雙曲正割acos反余弦tanh雙曲正切acsch反雙曲余割atan反正切coth雙曲余切atan2四象限反正切acot反余切asinh反雙曲正弦sec正割

12、acosh反雙曲余弦l 指數(shù)函數(shù)名稱含義名稱含義名稱含義expE為底的指數(shù)log1010為底的對數(shù)pow22的冪log自然對數(shù)log22為底的對數(shù)sqrt平方根l 復數(shù)函數(shù)名稱含義名稱含義名稱含義abs絕對值conj復數(shù)共軛real復數(shù)實部angle相角imag復數(shù)虛部l 圓整函數(shù)和求余函數(shù)名稱含義名稱含義ceil向+圓整rem求余數(shù)fix向0圓整round向靠近整數(shù)圓整floor向-圓整sign符號函數(shù)mod模除求余l(xiāng) 矩陣變換函數(shù)名稱含義名稱含義fiplr矩陣左右翻轉(zhuǎn)diag產(chǎn)生或提取對角陣fipud矩陣上下翻轉(zhuǎn)tril產(chǎn)生下三角fipdim矩陣特定維翻轉(zhuǎn)triu產(chǎn)生上三角Rot90矩陣反

13、時針90翻轉(zhuǎn)det行列式的計算l 其他函數(shù)名稱含義名稱含義min最小值max最大值mean平均值median中位數(shù)std標準差diff相鄰元素的差sort排序length個數(shù)norm歐氏(Euclidean)長度sum總和prod總乘積dot內(nèi)積cumsum累計元素總和cumprod累計元素總乘積cross外積例:y = sin(10)*exp(-0.3*42)y = -0.0045 【例】復數(shù)表達,及計算。(1)經(jīng)典教科書的直角坐標表示法z1= 3 + 4i z1 = 3.0000 + 4.0000i (2)采用運算符構成的直角坐標表示法和極坐標表示法z2 = 1 + 2 * i%運算符構成

14、的直角坐標表示法z3=2*exp(i*pi/6)%運算符構成的極坐標表示法z=z1*z2/z3 z2 = 1.0000 + 2.0000iz3 = 1.7321 + 1.0000iz = 0.3349 + 5.5801i【例】復數(shù)矩陣的生成及運算A=1,3;2,4-5,8;6,9*iB=1+5i,2+6i;3+8*i,4+9*i C=A*B A = 1.0000 - 5.0000i 3.0000 - 8.0000i 2.0000 - 6.0000i 4.0000 - 9.0000iB = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 8.0000i 4.

15、0000 + 9.0000iC = 1.0e+002 * 0.9900 1.1600 - 0.0900i 1.1600 + 0.0900i 1.3700 【例】求上例復數(shù)矩陣C的實部、虛部、模和相角。C_real=real(C)C_imag=imag(C)C_magnitude=abs(C)C_phase=angle(C)*180/pi%以度為單位計算相角 C_real = 99 116 116 137C_imag = 0 -9 9 0C_magnitude = 99.0000 116.3486 116.3486 137.0000C_phase = 0 -4.4365 4.4365 0 【例】

16、指令行操作過程示例。(1)若用戶想計算的值,那末用戶應依次鍵入以下字符y1=2*sin(0.3*pi)/(1+sqrt(5) (2)按【Enter】鍵,該指令便被執(zhí)行,并給出以下結果y1 = 0.5000 若又想計算,可以簡便地用操作鍵獲得指令,具體辦法是: 先用鍵調(diào)回已輸入過的指令 y1=2*sin(0.3*pi)/(1+sqrt(5) ;然后移動光標,把y1改成y2;把 sin 改成 cos 便可。即得y2=2*cos(0.3*pi)/(1+sqrt(5) y2 = 0.3633 注:設置精度值。t = 2.8957e-007digits(8) %精確到小數(shù)點后8位sym(t,d)ans

17、= .e-6四、陣列與矩陣MATLAB的運算事實上是以陣列 (array) 及矩陣 (matrix) 方式在做運算.陣列強調(diào)元素對元素的運算,而矩陣則采用線性代數(shù)的運算方式.宣告一變量為陣列或是矩陣時,須用中括號 將元素置于其中。陣列為一維元素所構成,而矩陣為多維元素所組成.例如: x=1 2 3 4 5 6 7 8 ;% 一維 1x8 陣列【例】簡單矩陣的輸入步驟。(1)在鍵盤上輸入下列內(nèi)容:( 以 ; 區(qū)隔各列的元素)A = 1,2,3; 4,5,6; 7,8,9 (2)按【Enter】鍵,指令被執(zhí)行。(3)在指令執(zhí)行后,MATLAB指令窗中將顯示以下結果:A = 1 2 3 4 5 6

18、7 8 9 【例】矩陣的分行輸入A=1,2,34,5,67,8,9 (以下是顯示結果)A = 1 2 3 4 5 6 7 8 9 a=1,4,6,8,10 %一維矩陣a(3) % a的第三個元素ans = 6x =1 2 3 4 5 6 7 84 5 6 7 8 9 10 11; %二維2x8 矩陣 x(3) % x的第三個元素ans = 2 x(1 2 5) % x的第一、二、五個元素ans = 1 4 3 x(2,3) % x的第二行第三列的元素ans = 6x(1:5) % x的第前五個元素ans = 1 4 2 5 3 x(10:end) % x的第十個元素后的元素ans = 8 6

19、9 7 10 8 11 x(10:-1:2) % x的第十個元素和第二個元素的倒排ans = 8 5 7 4 6 3 5 2 4 x(find(x5) % x中大于5的元素ans = 6 7 8 6 9 7 10 8 11 x(4)=100 %給x的第四個元素重新給值x = 1 2 3 4 5 6 7 8 4 100 6 7 8 9 10 11 x(3)= % 刪除第三個元素(不是二維數(shù)組)x = Columns 1 through 12 1 4 100 3 6 4 7 5 8 6 9 7 Columns 13 through 15 10 8 11 x(16)=1 % 加入第十六個元素x =

20、Columns 1 through 12 1 4 100 3 6 4 7 5 8 6 9 7 Columns 13 through 16 10 8 11 1當元素很多的時候,則須采用以下的方式: x=(1:2.5:120); % 以:起始值=1,增量值=2,終止值=120的矩陣 x=linspace(0,1,100); % 利用linspace,以區(qū)隔起始值=0,終止值=1之間,元素數(shù)目=100a= %空矩陣a = zeros(2,2) %全為0的矩陣ans = 0 000 ones(3,3) %全為1的矩陣ans = 1 1 1 1 1 11 1 1 rand(2,4); %隨機矩陣a=1:

21、7, b=1:0.2:5; %更直接的方式c=b a; %可利用先前建立的陣列 a 及陣列 b ,組成新陣列以下將陣列的運算符號及其意義列出,除了加減符號外其余的陣列運算符號均須多加 . 符號。 陣列運算功能 (注意:一定要多加 . 符號)+ 加 - 減 .* 乘 ./ 左除 . 右除 . 次方 . 轉(zhuǎn)置 a=1:5; a-2 % 從陣列a減2 ans = -1 0 1 2 3 2*a-1 % 以2乘陣列a再減1 ans = 1 3 5 7 9 b=1:2:9; a+b % 陣列a加陣列b ans = 2 5 8 11 14 a.*b % 陣列a及b中的元素與元素相乘 ans = 1 6 15

22、 28 45 a./b % 陣列a及b中的元素與元素相除 ans = 1.0000 0.66667 0.6000 0.5714 0.5556 a.2 % 陣列中的各個元素作二次方 ans = 1 4 9 16 25 2.a % 以2為底,以陣列中的各個元素為次方 ans = 2 4 8 16 32 b.a % 以陣列b中的各個元素為底,以陣列a中的各個元素為次方 ans = 1 9 125 2401 59049 b=a % 陣列b是陣列a的轉(zhuǎn)置結果 b = 1 2 3 4 5矩陣的幾種基本變換操作1.通過在矩陣變量后加的方法來表示轉(zhuǎn)置運算a=10,2,12;34,2,4;98,34,6;aans = 10 34 98 2 2 3412 4 62. 矩陣求逆inv(a)ans = -0.0116 0.0372 -0.0015 0.0176 -0.1047 0.0345 0.0901 -0.0135 -0.00453. 矩陣求偽逆pinv(a)ans = -0.0116 0.0372 -0.0015 0.0176 -0.1047 0.0345 0.0901 -0.0135 -0.00454. 左右反轉(zhuǎn)fliplr(a)ans = 12 2 10 4 2 34 6 34 985. 矩陣的特征值u,v=eig(a)u = -0.2960 0.3635 -0.3600 -0.2925

溫馨提示

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

評論

0/150

提交評論