




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第3章 MATLAB語言程序設(shè)計基礎(chǔ) 3.1 matlab基本數(shù)據(jù)類型 3.1.1 變量、常量、賦值語句結(jié)構(gòu) 1、變量:字母引導(dǎo)、63個有效字符、區(qū)分大小寫、不含空格和標點符號。 2、常量:pi、Inf、-Inf、NaN、esp、i、j、lasterr、lastwarn3、賦值語句結(jié)構(gòu)(1) 直接賦值變量名表達式變量名表達式 ans續(xù)行號顯示行結(jié)果不顯示行結(jié)果;(2) 函數(shù)調(diào)用語句返回變量列表函數(shù)名輸入變量列表內(nèi)部函數(shù)外部函數(shù).m(用戶設(shè)計編輯)變量列表由若干變量名組成,用“,”隔開a,b,t v,d=eig(a)計算a矩陣的特征向量和特征根并賦值給v和d 多重嵌套調(diào)用x=sqrt(log(2
2、) 3.1.2矩陣的matlab表示matlab的實質(zhì)是對矩陣的運算處理元素可以是實數(shù)和虛數(shù)標量作為特殊矩陣處理 11存儲方式自動安排,不需要定義維數(shù)a=1 2 3;4 5 6;7 8 9 a=a;1 2 3矩陣擴展時元素應(yīng)匹配 x=-1.3 sqrt(3) (1+2+3)*4/5 元素可以是常量,也可以是表達式 x(5)=abs(x(1) 維數(shù)能自動擴充以容納新的元素,未賦值元素自動賦值為0 a(1,3,1,2) 小矩陣亦可以從大矩陣中提取出來 冒號“:”表達式a=s1:s2:s3提取矩陣時“:”表示所有行或列a(:,1,3) a(2:end,1,2)1簡單矩陣簡單矩陣1 簡單矩陣簡單矩陣
3、linspace等間隔分布數(shù)值 k=linspace(-pi,pi,5) logspace按對數(shù)值等間隔分布k=logspace(-1,2,5) reshape 重新定義維數(shù) end 表示某一維末尾元素下標2、復(fù)數(shù)矩陣:、復(fù)數(shù)矩陣:b=1 2;3 4+i*5 6;7 8b=1+5i 2+6i;3+7i 4+8i3、空矩陣00階與clear不同之處:clear刪除變量刪除矩陣中的元素A(:,2,3)=第2,3列元素刪除4、特殊矩陣:函數(shù)生成矩陣 compan 伴隨矩陣 inhilb 希爾伯特逆矩陣 diag 對角矩陣(列向量) magic 魔術(shù)方陣 gallery 一組有名的矩陣(難解特征根)
4、pascal 帕斯卡三角矩陣(楊輝三角形) hadamard 哈達瑪矩陣 toeplits 托普利茲方陣 hankel 漢考矩陣 vander 萬達摩方陣 hilb 希爾伯特矩陣對多項式x3-7x+6p=1 0 7 6 則伴隨矩陣a=compan(p) 而特征值,根為eig(a)工具矩陣 zeros 全零陣 linspace 線性等距向量 ones 全l陣 logspace 按對數(shù)值等分的向量 rand 隨機數(shù)元素矩陣 meshgrid 設(shè)三維繪圖基底坐標平面 eye 單位矩陣3.1.3構(gòu)造多維數(shù)組 cat( ) a=cat(n,a1,a2,.) n:多維函數(shù)的維數(shù) n=1: cat(a1,a
5、2,a3.)=a1;a2;a3 n=2: cat(a1,a2,a3.)=a1,a2,a3 n=3:圖31示3.1.3構(gòu)造多維數(shù)組a1=1 2 3;4 5 6;7 8 9;a2=a1 a3=a1-a2 cat(1,a1,a2,a3) cat(2,a1,a2,a3) cat(3,a1,a2,a3)3.1.3構(gòu)造多維數(shù)組 函數(shù)length()測矩陣或多維數(shù)組的各維最大值 函數(shù)size() 測矩陣或多維數(shù)組的尺寸大小 size(a1)size(ans)length(ans) length()=max(size()3.1.4 字符串變量及其處理 用單引號 s=hello 以ascii碼形式存儲,等同于v
6、=72 101 108 108 111 s=s world s=hello s=s;world3.1.4 字符串變量及其處理字符串處理函數(shù):表343.2 matlab語言基本運算及輸入輸出3.2.1 矩陣的代數(shù)運算1、 矩陣的轉(zhuǎn)置 對復(fù)數(shù)矩陣,表示共軛復(fù)數(shù)的轉(zhuǎn)置矩陣原始元素的轉(zhuǎn)置矩陣 .a=1 2 3;4 5 6;7 8 9ab=1 2 ;3 4+j*5 6;7 8bb.3.2 matlab語言基本運算及輸入輸出2、矩陣的加減法b=a+2a+b3、矩陣的乘法 a*ba的行數(shù)b的列數(shù)4、矩陣的除法“/” “”ab b/ab被a的逆矩陣左乘、右乘inv(a)*bb*inv(a)3.2 matlab
7、語言基本運算及輸入輸出 一般來說 x=ab是方程 a*x =b 的解 x=b/a是方程 x*a =b 的解 5、矩陣的乘方apa的p次乘方a:矩陣p:標量6、點運算.*./.k=1 2;3 4;l=5 6;7 8;k*lk.*l7、矩陣的翻轉(zhuǎn) rot90( ) 逆時針90度 rot90(k) flipud(k) 上下fliplr(k) 左右3.2 matlab語言基本運算及輸入輸出3.2.2 矩陣的邏輯運算邏輯與(&) and() 、邏輯或(|) or() 、邏輯非() not()邏輯異或xor():先異運算再或運算先決邏輯與(&)先觀察左邊的量,若為0則不再觀察右邊的量,直接
8、給出0,若為1才觀察右邊的量進行運算。先決邏輯或(|)先觀察左邊的量,若為1則不再觀察右邊的量,直接給出1,若為0才觀察右邊的量進行運算。矩陣的邏輯運算是在對應(yīng)的各個元素之間進行的?!胺?即1”eg.a=1 2 ;3 4;b=0 6;0 8;a|ba&bxor(a,b)a=-5;b=-10;(b=0)&(a/b5)(b=0)|(a/b0)3.2 matlab語言基本運算及輸入輸出 3.2.3 矩陣的比較關(guān)系 關(guān)系運算在對應(yīng)元素間進行,結(jié)果為一個二值矩陣,0代表假,1代表真 22=4其結(jié)果為03.2 matlab語言基本運算及輸入輸出 例:做一個6階魔方矩陣,從右上角起每隔2條斜
9、線便有一條斜線上元素能被3整除。為顯示這一特性。 a=magic(6) p=rem(a,3)=0 %求余數(shù) format +,p%設(shè)定用“+” 空格“-”表示大于、等于、小于0的數(shù)。 3.2 matlab語言基本運算及輸入輸出 關(guān)系運算和邏輯運算3.2 matlab語言基本運算及輸入輸出 例 y=4 2 1 5 3 0 6,I=find(y3.0)把y 中大于3的元素序號序號 放入I 中 any, all使用 if all(a0.5)%只有a中所有元素小于5才運算 end3.2 matlab語言基本運算及輸入輸出 對于矩陣運算,二者均按列工作,結(jié)果返回到一個向量中。 a=magic(6),an
10、y(a),all(a),all(a5) any(any(a)3.2 matlab語言基本運算及輸入輸出 3.2.4矩陣元素的數(shù)據(jù)變換3.2 matlab語言基本運算及輸入輸出3.2 matlab語言基本運算及輸入輸出 以取整命令舉例: b=-1.6 -1.4 1.6 1.4 floor(b) ceil(b) round(b) fix(b)3.2 matlab語言基本運算及輸入輸出 3.2.5輸入與輸出語句 input A=input(提示字符串)要求輸入矩陣 A=input(提示字符串,s)要求字符串eg: n=input(how much) n=input(how much,s)3.2 ma
11、tlab語言基本運算及輸入輸出 輸出最直接的方式:語句后不加分號 disp( ) eg a=5;disp(a)3.3 matlab語言的程序流程語句循環(huán)、條件轉(zhuǎn)移、開關(guān)3.3.1循環(huán)語句1、 for 控制變量=表達式 end表達式和其它變量一樣,實際上是一個矩陣,其列被依次賦于控制變量,每賦值一次,執(zhí)行一次循環(huán)體。3.3 matlab語言的程序流程語句通常表達式i=s1:s3:s2初值:步長:終值 s1:s2步長為1例:已知5個學(xué)生4門功課的成績,求每名學(xué)生的總成績。程序如下:s=0;a=65,76,56,78;98,83,74,85;76,67,78,79;98,58,42,73;67,89
12、,76,87;for k=a s=s+k;enddisp(s);3.3 matlab語言的程序流程語句 y=rand(1,6) for i=1:9,y(i)=0;end,disp(y) 將前9個元素置為0,不足自動分配空間。 例:求定積分。程序如下: a=0;b=3*pi;n=1000; h=(b-a)/n; x=a:h:b; f=exp(-0.5*x).*sin(x+pi/6); for i=1:n s(i)= (f(i)+f(i+1)*h/2; end s=sum(s)3.3 matlab語言的程序流程語句 2、while 表達式語句集 end表達式不為表達式不為0便執(zhí)行便執(zhí)行例:求階乘n
13、!為100位數(shù)時的最小n. n=1; while prod(1:n)1.e100,n=n+1;end n% prod:向量元素乘積3.3 matlab語言的程序流程語句 for 結(jié)構(gòu)和while結(jié)構(gòu)框圖3.3 matlab語言的程序流程語句 3.3.2條件轉(zhuǎn)移語句 if表達式end if表達式elseend if表達式1elseif表達式2 elseif表達式3elseend結(jié)構(gòu)如圖示3.3 matlab語言的程序流程語句 圖3-3 3.3 matlab語言的程序流程語句 例:按n的符號和奇偶性,分3種不同情況進行處理。if n0a=negative(n)elseif rem(n,2)=0a=
14、even(n)elsea=odd(n)end3.3 matlab語言的程序流程語句 例:舉一正整數(shù),若為偶數(shù)用2除之,若為奇數(shù)則與3相乘再加1,直至結(jié)果為1 % clasic 3n+1 problem from number theory while 1 n=input(enter n,negative quits.) if n1 if rem(n,2)=0 n=n/2 else n=3*n+1 end end end3.3 matlab語言的程序流程語句 3.3.3開關(guān)語句 switch開關(guān)表達式 csae 表達式1 statement1 csae 表達式2 statement2. othe
15、rwise statement nend3.3 matlab語言的程序流程語句3.3 matlab語言的程序流程語句例: 某商場對顧客所購買的商品實行打折銷售,已知打折標準,求所售商品的實際銷售價格。 價格2005001000250050005000折扣率%035810143.3 matlab語言的程序流程語句price=input(請輸入商品價格); switch fix(price/100) %向0取整 case 0,1 rate=0; case 2,3,4 rate=3/100; case num2cell(5:9) %將數(shù)組元素轉(zhuǎn)換為元胞數(shù)組 rate=5/100; case num2
16、cell(10:24) rate=8/100; case num2cell(25:49) rate=10/100; otherwise rate=14/100; end price=price*(1-rate)3.4 matlab語言的語言編寫與調(diào)試 Matlab 在命令窗口,逐行鍵入,立即執(zhí)行。 執(zhí)行語句集文件.m m文件一類 程序文件、一類函數(shù)文件 3.4.1程序文件 用程序編輯器編輯保存的文件,在MATLAB環(huán)境下調(diào)用,立即執(zhí)行文件中的各條語句,而不再逐行輸入。全局變量 Startup.m3.4 matlab語言的語言編寫與調(diào)試 3.4.2函數(shù)文件函數(shù)文件由function語句引導(dǎo),其基
17、本結(jié)構(gòu)為: function 輸出形參表=函數(shù)名(輸入形參表) 注釋說明部分 函數(shù)體語句 類似于函數(shù)功能,完成一個參數(shù)傳遞功能。 文件中定義的局部變量對MATLAB工作空間的全局變量不起作用。 擴展MATLAB的函數(shù)功能。 說明:(1)關(guān)于函數(shù)文件名: 函數(shù)文件名與函數(shù)名也可以不相同。當兩者不同時,MATLAB將忽略函數(shù)名而確認函數(shù)文件名,因此調(diào)用時使用函數(shù)文件名。(2)關(guān)于注釋說明部分。注釋說明包括三部分內(nèi)容:緊隨函數(shù)文件引導(dǎo)行之后以%開頭的第一注釋行。第一注釋行及之后連續(xù)的注釋行。與在線幫助文本相隔一空行的注釋行。 (3)關(guān)于return語句。執(zhí)行到該語句就結(jié)束函數(shù)的執(zhí)行,程序流程轉(zhuǎn)至調(diào)用
18、該函數(shù)的位置。通常,在函數(shù)文件中也可不使用return語句,這時在被調(diào)函數(shù)執(zhí)行完成后自動返回。 例: 編寫函數(shù)文件求半徑為r的圓的面積和周長。 函數(shù)文件如下: function s,p=fcircle(r) %CIRCLE calculate the area and perimeter of a circle of radii r %r 圓半徑 %s 圓面積 %p 圓周長 %2005年4月30日編 s=pi*r*r; p=2*pi*r; 將以上函數(shù)文件以文件名fcircle.m存入c:matlabr11work下,然后在MATLAB命令窗口調(diào)用該函數(shù): s,p=fcircle(10) 3.4.3 函數(shù)調(diào)用 函數(shù)調(diào)用的一般格式是: 輸出實參表=函數(shù)名(輸入實參表)例3.15 利用函數(shù)文件,實現(xiàn)直角坐標(x,y)與極坐標(,)之間的轉(zhuǎn)換。 函數(shù)文件tran.m:
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 昆明云南昆明市晉寧區(qū)六街鎮(zhèn)中心幼兒園招聘編外工作人員筆試歷年參考題庫附帶答案詳解
- 大連溫泉打井施工方案
- 《物資采購合同范例》
- 企業(yè)資金委托審計合同范例
- 二手鏟車購銷合同范例
- 仿古門窗合同范例
- 臨時模特拍攝合同范例
- 2013勞務(wù)合同范例
- ktv眾籌合同范例
- 農(nóng)業(yè)農(nóng)民合作合同范例
- 急性ST段抬高型心肌梗死溶栓治療專家共識2024解讀
- 電影《哪吒之魔童降世》主題班會
- 四川德陽歷年中考語文文言文閱讀試題12篇(含答案與翻譯)(截至2024年)
- 合唱之美知到智慧樹章節(jié)測試課后答案2024年秋山東航空學(xué)院
- 人工智能應(yīng)用概論(第2版) 教案全套 莫少林
- 食品安全演練預(yù)案及流程
- 2025年湖南科技職業(yè)學(xué)院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 2025屆威海市高三語文上學(xué)期期末考試卷附答案解析
- 2025年鎮(zhèn)江市高等??茖W(xué)校高職單招高職單招英語2016-2024年參考題庫含答案解析
- 《病例隨訪匯報》課件
評論
0/150
提交評論